Compare commits

...

74 Commits

Author SHA1 Message Date
Chris Collins
c8ed7eff7e Merge branch 'prerel-1.7.0.1' into 'main'
Detect changes to cron schedules

See merge request personal/wedding-share!83
2025-08-03 17:59:57 +01:00
Cirx08
3943bf3dc6 Detect changes to cron schedules 2025-08-03 17:57:15 +01:00
Chris Collins
0714b93dc9 Merge branch 'prerel-1.6.11.2' into 'main'
Prerel 1.7.0

See merge request personal/wedding-share!82
2025-08-01 17:36:42 +01:00
Chris Collins
d391709be6 Prerel 1.7.0 2025-08-01 17:36:42 +01:00
Chris Collins
adb9d5242e Merge branch 'prerel-1.6.11.1' into 'main'
- Fix to remove async from RequiresSecretKeyAttribute as it was allowing the...

See merge request personal/wedding-share!81
2025-07-30 21:24:16 +01:00
Chris Collins
b72e493675 - Fix to remove async from RequiresSecretKeyAttribute as it was allowing the... 2025-07-30 21:24:15 +01:00
Chris Collins
907c460d97 Merge branch 'prerel-1.6.11' into 'main'
Prerel 1.6.11

See merge request personal/wedding-share!80
2025-07-29 22:03:24 +01:00
Chris Collins
98572919b2 Prerel 1.6.11 2025-07-29 22:03:24 +01:00
Chris Collins
febd844c91 Merge branch 'prerel-1.6.10.8' into 'main'
Added cookie consent when policy is disabled

See merge request personal/wedding-share!79
2025-07-18 21:06:19 +01:00
Cirx08
bda3c61f7f Added cookie consent when policy is disabled 2025-07-18 21:04:01 +01:00
Chris Collins
254734bdc1 Merge branch 'prerel-1.6.10.7' into 'main'
1.6.10.7

See merge request personal/wedding-share!78
2025-07-18 17:03:05 +01:00
Chris Collins
829281b616 1.6.10.7 2025-07-18 17:03:05 +01:00
Chris Collins
dff86d9232 Merge branch 'prerel-1.6.10.6' into 'main'
Prerel 1.6.10.6

See merge request personal/wedding-share!77
2025-07-18 11:45:26 +01:00
Chris Collins
50668efc1b Prerel 1.6.10.6 2025-07-18 11:45:26 +01:00
Chris Collins
845634e8f1 Merge branch 'prerel-1.6.10.5' into 'main'
Localization fixes

See merge request personal/wedding-share!76
2025-07-15 20:27:49 +01:00
Cirx08
9ad2253972 Localization fixes 2025-07-15 20:03:56 +01:00
Chris Collins
a155c3a442 Merge branch 'prerel-1.6.10.4' into 'main'
Prerel 1.6.10.4

See merge request personal/wedding-share!75
2025-07-15 17:41:07 +01:00
Chris Collins
4ac9622374 Prerel 1.6.10.4 2025-07-15 17:41:07 +01:00
Chris Collins
c59e2bb3b9 Added gallery override to IncludeCulture on gallery page 2025-07-15 16:36:34 +01:00
Chris Collins
e6bb583601 Merge branch 'prerel-1.6.10.2' into 'main'
Fix for QR code culture setting

See merge request personal/wedding-share!74
2025-07-15 16:00:13 +01:00
Chris Collins
a7f1b0c906 Fix for QR code culture setting 2025-07-15 15:52:03 +01:00
Chris Collins
1607961543 Bumped version number 2025-07-15 10:42:45 +01:00
Christopher Collins
e1d2e5e4d9 Bumped version number 2025-07-15 10:32:12 +01:00
Christopher Collins
a30eb683d6 Fixes for gallery creation and SQLite connection test 2025-07-15 09:59:35 +01:00
Chris Collins
e454d46e49 Merge branch 'prerel-1.6.9' into 'main'
Migrated settings to Ids instead of gallery name

See merge request personal/wedding-share!69
2025-07-14 19:22:39 +01:00
Chris Collins
067f631c6c Migrated settings to Ids instead of gallery name 2025-07-14 19:22:38 +01:00
Chris Collins
3b36854a21 Merge branch 'prerel-1.6.9.3' into 'main'
Halt application if DB connection issues

See merge request personal/wedding-share!73
2025-07-13 10:51:18 +01:00
Cirx08
421d8afa36 Halt application if DB connection issues 2025-07-13 10:44:17 +01:00
Chris Collins
5ad8ccdf2f Merge branch 'prerel-1.6.9.2' into 'main'
Bug fix for MySQL DBUP init scripts

See merge request personal/wedding-share!72
2025-07-12 18:02:46 +01:00
Cirx08
313152ed92 Bug fix for MySQL DBUP init scripts 2025-07-12 17:52:55 +01:00
Chris Collins
e5c6578264 Added alias to MySQL query 2025-07-11 16:11:46 +01:00
Chris Collins
9e7ff7fff7 Merge branch 'prerel-1.6.8.5' into 'main'
Prerel 1.6.9

See merge request personal/wedding-share!71
2025-07-09 21:45:14 +01:00
Chris Collins
f0f57cf093 Prerel 1.6.9 2025-07-09 21:45:14 +01:00
Chris Collins
30db4523f4 Merge branch 'prerel-1.6.8.4' into 'main'
Allow special characters in identity while preventing XSS

See merge request personal/wedding-share!70
2025-07-07 21:55:07 +01:00
Chris Collins
894b4b37e7 Allow special characters in identity while preventing XSS 2025-07-07 21:55:07 +01:00
Chris Collins
17832f1ac1 Merge branch 'prerel-1.6.8.3' into 'main'
Simplified file uploader

See merge request personal/wedding-share!68
2025-06-27 16:49:43 +01:00
Cirx08
1adbb294aa Simplified file uploader 2025-06-25 21:16:18 +01:00
Chris Collins
804ab650d7 Merge branch 'prerel-1.6.8.2' into 'main'
Updated IT translations

See merge request personal/wedding-share!67
2025-06-18 21:19:46 +01:00
Cirx08
efd5dd9bd5 Updated IT translations 2025-06-18 21:15:48 +01:00
Chris Collins
af13edbf0c Merge branch 'prerel-1.6.8.1' into 'main'
Add support for older instances using the Admin keys

See merge request personal/wedding-share!66
2025-06-16 22:42:53 +01:00
Cirx08
bb79429079 Add support for older instances using the Admin keys 2025-06-16 22:40:46 +01:00
Chris Collins
aa1debcba3 Merge branch 'prerel-30-organise-thumbnails-in-folders' into 'main'
Moved thumbnails directory

See merge request personal/wedding-share!65
2025-06-14 11:43:02 +01:00
Chris Collins
dd757c2aca Moved thumbnails directory 2025-06-14 11:43:02 +01:00
Chris Collins
aeb53708de Merge branch 'prerel-italian-translations' into 'main'
Updated translations provided by CoffeePerry

See merge request personal/wedding-share!64
2025-06-11 21:10:41 +01:00
Chris Collins
aac4937f35 Updated translations provided by CoffeePerry 2025-06-11 21:10:41 +01:00
Chris Collins
d0a58d5d08 Merge branch 'prerel-29-migrate-admin-controller-to-account-controller' into 'main'
Replaced the Admin controller with the Account controller

See merge request personal/wedding-share!63
2025-06-08 20:16:37 +01:00
Cirx08
aa54385ce2 Replaced the Admin controller with the Account controller 2025-06-08 17:05:35 +01:00
Chris Collins
36d0e4ac6a Merge branch 'prerel-1.6.6.8' into 'main'
Updated `Gallery_Key_Placeholder` value to be less confusing

See merge request personal/wedding-share!62
2025-06-03 15:02:16 +01:00
Chris
db5f811ae4 Updated Gallery_Key_Placeholder value to be less confusing 2025-06-03 14:59:59 +01:00
Chris Collins
a056596325 Bumped version number to 1.6.6.7. 2025-05-22 10:40:31 +01:00
Cirx08
d8edf39aab Updated identity check text to prevent wrapping 2025-05-21 18:49:37 +01:00
Cirx08
33d0b6be0d Added sponsors link options to popup 2025-05-20 10:37:55 +01:00
Cirx08
7b6bc83953 Fixed sponsors list display issues 2025-05-20 10:17:29 +01:00
Cirx08
ec71b8a43a Removed Github profile link from BuyMeACoffee sponsor cards 2025-05-19 23:22:20 +01:00
Cirx08
84ee089e3d Changed "Identity Check" to "Guest Name" and increased default upload size from 10MB to 50MB 2025-05-19 15:47:28 +01:00
Cirx08
6a330a7215 Bumped version number 2025-05-19 15:27:15 +01:00
Cirx08
d6bb68ec5d Prepend filename with uploader name 2025-05-19 15:26:27 +01:00
Cirx08
d40bfe99e1 Hide upload for reviewers but allow them to view the gallery list to delete wrongly approved images 2025-05-16 11:10:35 +01:00
Chris Collins
3cad6c4735 Merge branch 'prerel-item-owners' into 'main'
Prerel item owners

See merge request personal/wedding-share!61
2025-05-16 10:33:35 +01:00
Chris Collins
b236a0816f Prerel item owners 2025-05-16 10:33:35 +01:00
Chris Collins
fe727ed1b4 Merge branch 'prerel-sponsors-popup-tweaks' into 'main'
Updated sponsors popup

See merge request personal/wedding-share!60
2025-05-14 16:33:50 +01:00
Chris Collins
538e3cf5c7 Updated sponsors popup 2025-05-14 16:33:50 +01:00
Chris Collins
00548b99ff Merge branch 'prerel-gallery-download-fix' into 'main'
Prerel gallery download fix

See merge request personal/wedding-share!59
2025-05-13 15:59:00 +01:00
Chris Collins
4459cd400f Prerel gallery download fix 2025-05-13 15:58:59 +01:00
Cirx08
02bd858756 Added settings buttong to full width galleries 2025-05-10 23:03:57 +01:00
Cirx08
0d71453f8b Fixed Settings_Gallery_QRCodeIncludeCulture_Help translations 2025-05-10 10:36:30 +01:00
Chris Collins
ef67809f38 Merge branch 'prerel-ui-tweaks' into 'main'
Prerel ui tweaks

See merge request personal/wedding-share!58
2025-05-09 22:58:07 +01:00
Chris Collins
e9bdc5e334 Prerel ui tweaks 2025-05-09 22:58:07 +01:00
Cirx08
9332bb52e6 Added sponsor file 2025-05-09 22:22:32 +01:00
Chris Collins
4c5f0a00af Merge branch 'prerel-1.4.6.2' into 'main'
Added culture to QR codes

See merge request personal/wedding-share!57
2025-05-08 23:05:19 +01:00
Cirx08
849b623a04 Added culture to QR codes 2025-05-08 22:58:46 +01:00
Cirx08
b1194462cc Added bug fix for insecure qr code keys and review panel layout 2025-05-08 21:51:48 +01:00
Chris Collins
412d07c4ab Merge branch 'prerel-25-add-an-audit-log' into 'main'
Prerel 25 add an audit log

See merge request personal/wedding-share!56
2025-05-05 13:44:00 +01:00
Chris Collins
26b4a90870 Prerel 25 add an audit log 2025-05-05 13:44:00 +01:00
674 changed files with 59253 additions and 2956 deletions

2
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,2 @@
github: [cirx08]
buy_me_a_coffee: cirx08

1
.gitignore vendored
View File

@@ -25,3 +25,4 @@
/WeddingShare/wwwroot/logos
/WeddingShare/wwwroot/banners
/WeddingShare/wwwroot/images/custom_resources
/WeddingShare/config/wedding-share.db.bak

View File

@@ -38,7 +38,7 @@ push_pre_release:
GIT_STRATEGY: none
stage: push
only:
- /^(prerel|rc|release)-[0-9]+.+/
- /^(prerel|rc|release)-.+/
script:
- 'docker buildx build --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_BRANCH --tag $CI_REGISTRY_IMAGE:pre_release --platform $BUILD_PLATFORMS --builder $BUILD_BUILDER_NAME --push -f $BUILD_DOCKERFILE .'
needs:

View File

@@ -1,3 +1,4 @@
using System.Data.Common;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
@@ -40,25 +41,20 @@ namespace WeddingShare.UnitTests.Tests.Helpers
{
_env.WebRootPath.Returns("/app/wwwroot");
_database.GetGallery("default").Returns(Task.FromResult<GalleryModel?>(new GalleryModel()
{
Id = 1,
Name = "default",
SecretKey = "password",
ApprovedItems = 32,
PendingItems = 50,
TotalItems = 72
}));
_database.GetGallery("blaa").Returns(Task.FromResult<GalleryModel?>(new GalleryModel()
{
Id = 2,
Name = "blaa",
SecretKey = "456789",
ApprovedItems = 2,
PendingItems = 1,
TotalItems = 3
}));
_database.GetGallery("missing").Returns(Task.FromResult<GalleryModel?>(null));
var mockData = GetMockData();
_database.GetGallery(1).Returns(Task.FromResult<GalleryModel?>(mockData["default"]));
_database.GetGallery(2).Returns(Task.FromResult<GalleryModel?>(mockData["blaa"]));
_database.GetGallery(3).Returns(Task.FromResult<GalleryModel?>(null));
_database.GetGalleryId("default").Returns(Task.FromResult<int?>(mockData["default"].Id));
_database.GetGalleryId("blaa").Returns(Task.FromResult<int?>(mockData["blaa"].Id));
_database.GetGalleryId("missing").Returns(Task.FromResult<int?>(null));
_database.GetGalleryIdByName("default").Returns(Task.FromResult<int?>(mockData["default"].Id));
_database.GetGalleryIdByName("blaa").Returns(Task.FromResult<int?>(mockData["blaa"].Id));
_database.GetGalleryIdByName("missing").Returns(Task.FromResult<int?>(null));
_database.AddGallery(Arg.Any<GalleryModel>()).Returns(Task.FromResult<GalleryModel?>(new GalleryModel()
{
Id = 101,
@@ -66,7 +62,8 @@ namespace WeddingShare.UnitTests.Tests.Helpers
SecretKey = "123456",
ApprovedItems = 0,
PendingItems = 0,
TotalItems = 0
TotalItems = 0,
Owner = 0
}));
_database.AddGalleryItem(Arg.Any<GalleryItemModel>()).Returns(Task.FromResult<GalleryItemModel?>(MockData.MockGalleryItem()));
@@ -75,17 +72,17 @@ namespace WeddingShare.UnitTests.Tests.Helpers
_database.GetAllGalleryItems(Arg.Any<int>(), GalleryItemState.Approved, Arg.Any<MediaType>(), Arg.Any<ImageOrientation>(), Arg.Any<GalleryGroup>(), Arg.Any<GalleryOrder>(), Arg.Any<int>(), Arg.Any<int>()).Returns(Task.FromResult(MockData.MockGalleryItems(10, 1, GalleryItemState.Approved)));
_database.GetGalleryItemByChecksum(Arg.Any<int>(), Arg.Any<string>()).ReturnsNull();
_settings.GetOrDefault(Settings.Gallery.SecretKey, Arg.Any<string>(), Arg.Any<string>()).Returns("password");
_settings.GetOrDefault(Settings.Gallery.SecretKey, Arg.Any<string>(), "blaa").Returns("456789");
_settings.GetOrDefault(Settings.Gallery.SecretKey, Arg.Any<string>(), "missing").Returns("123456");
_settings.GetOrDefault(Settings.Gallery.Upload, Arg.Any<bool>(), Arg.Any<string>()).Returns(true);
_settings.GetOrDefault(Settings.Gallery.Download, Arg.Any<bool>(), Arg.Any<string>()).Returns(true);
_settings.GetOrDefault(Settings.Gallery.UploadPeriod, Arg.Any<string>(), Arg.Any<string>()).Returns("1970-01-01 00:00:00");
_settings.GetOrDefault(Settings.Gallery.PreventDuplicates, Arg.Any<bool>(), Arg.Any<string>()).Returns(true);
_settings.GetOrDefault(Settings.Gallery.DefaultView, Arg.Any<int>(), Arg.Any<string>()).Returns((int)ViewMode.Default);
_settings.GetOrDefault(Settings.Gallery.AllowedFileTypes, Arg.Any<string>(), Arg.Any<string>()).Returns(".jpg,.jpeg,.png,.mp4,.mov");
_settings.GetOrDefault(Settings.Gallery.RequireReview, Arg.Any<bool>(), Arg.Any<string>()).Returns(true);
_settings.GetOrDefault(Settings.Gallery.MaxFileSizeMB, Arg.Any<int>(), Arg.Any<string>()).Returns(10);
_settings.GetOrDefault(Settings.Gallery.SecretKey, Arg.Any<string>(), Arg.Any<int>()).Returns("password");
_settings.GetOrDefault(Settings.Gallery.SecretKey, Arg.Any<string>(), 2).Returns("456789");
_settings.GetOrDefault(Settings.Gallery.SecretKey, Arg.Any<string>(), 101).Returns("123456");
_settings.GetOrDefault(Settings.Gallery.Upload, Arg.Any<bool>(), Arg.Any<int>()).Returns(true);
_settings.GetOrDefault(Settings.Gallery.Download, Arg.Any<bool>(), Arg.Any<int>()).Returns(true);
_settings.GetOrDefault(Settings.Gallery.UploadPeriod, Arg.Any<string>(), Arg.Any<int>()).Returns("1970-01-01 00:00:00");
_settings.GetOrDefault(Settings.Gallery.PreventDuplicates, Arg.Any<bool>(), Arg.Any<int>()).Returns(true);
_settings.GetOrDefault(Settings.Gallery.DefaultView, Arg.Any<int>(), Arg.Any<int>()).Returns((int)ViewMode.Default);
_settings.GetOrDefault(Settings.Gallery.AllowedFileTypes, Arg.Any<string>(), Arg.Any<int>()).Returns(".jpg,.jpeg,.png,.mp4,.mov");
_settings.GetOrDefault(Settings.Gallery.RequireReview, Arg.Any<bool>(), Arg.Any<int>()).Returns(true);
_settings.GetOrDefault(Settings.Gallery.MaxFileSizeMB, Arg.Any<int>(), Arg.Any<int>()).Returns(10);
_file.GetChecksum(Arg.Any<string>()).Returns(Guid.NewGuid().ToString());
@@ -94,10 +91,10 @@ namespace WeddingShare.UnitTests.Tests.Helpers
_localizer[Arg.Any<string>()].Returns(new LocalizedString("UnitTest", "UnitTest"));
}
[TestCase(DeviceType.Desktop, 1, "default", "password", ViewMode.Default, GalleryGroup.None, GalleryOrder.Descending, true)]
[TestCase(DeviceType.Mobile, 2, "blaa", "456789", ViewMode.Presentation, GalleryGroup.Date, GalleryOrder.Ascending, true)]
[TestCase(DeviceType.Tablet, 101, "missing", "123456", ViewMode.Slideshow, GalleryGroup.Uploader, GalleryOrder.Ascending, false)]
public async Task GalleryController_Index(DeviceType deviceType, int id, string name, string? key, ViewMode? mode, GalleryGroup group, GalleryOrder order, bool existing)
[TestCase(DeviceType.Desktop, 1, "default", "default", "password", ViewMode.Default, GalleryGroup.None, GalleryOrder.Descending, true)]
[TestCase(DeviceType.Mobile, 2, "blaa", "blaa", "456789", ViewMode.Presentation, GalleryGroup.Date, GalleryOrder.Ascending, true)]
[TestCase(DeviceType.Tablet, 101, "missing", "missing", "123456", ViewMode.Slideshow, GalleryGroup.Uploader, GalleryOrder.Ascending, false)]
public async Task GalleryController_Index(DeviceType deviceType, int id, string? identifier, string? name, string? key, ViewMode? mode, GalleryGroup group, GalleryOrder order, bool existing)
{
_deviceDetector.ParseDeviceType(Arg.Any<string>()).Returns(deviceType);
_settings.GetOrDefault(Settings.Basic.SingleGalleryMode, Arg.Any<bool>()).Returns(false);
@@ -108,42 +105,61 @@ namespace WeddingShare.UnitTests.Tests.Helpers
if (existing)
{
ViewResult actual = (ViewResult)await controller.Index(name, key, mode, group, order);
ViewResult actual = (ViewResult)await controller.Index(identifier, name, key, mode, group, order);
Assert.That(actual, Is.TypeOf<ViewResult>());
Assert.That(actual?.Model, Is.Not.Null);
PhotoGallery model = (PhotoGallery)actual.Model;
Assert.That(model?.GalleryId, Is.EqualTo(id));
Assert.That(model?.GalleryName, Is.EqualTo(name));
Assert.That(model?.Gallery?.Id, Is.EqualTo(id));
Assert.That(model?.Gallery?.Identifier, Is.EqualTo(identifier));
Assert.That(model?.Gallery?.Name, Is.EqualTo(name));
Assert.That(model?.SecretKey, Is.EqualTo(key));
Assert.That(model.ViewMode, Is.EqualTo(mode));
Assert.That(model?.FileUploader?.GalleryId, Is.EqualTo(name));
Assert.That(model?.FileUploader?.SecretKey, Is.EqualTo(key));
Assert.That(model?.FileUploader?.UploadUrl, Is.EqualTo("/Gallery/UploadImage"));
}
else
{
RedirectToActionResult actual = (RedirectToActionResult)await controller.Index(name, key, mode, group, order);
RedirectToActionResult actual = (RedirectToActionResult)await controller.Index(identifier, name, key, mode, group, order);
Assert.That(actual, Is.TypeOf<RedirectToActionResult>());
}
}
[TestCase(true, true)]
[TestCase(false, false)]
public async Task GalleryController_UploadDisabled(bool disabled, bool expected)
[TestCase(null, "default", "default")]
[TestCase("default", null, "default")]
[TestCase("default", "blaa", "blaa")]
public async Task GalleryController_Index_GetByIdentifier(string? id, string? identifier, string expected)
{
_deviceDetector.ParseDeviceType(Arg.Any<string>()).Returns(DeviceType.Desktop);
_settings.GetOrDefault(Settings.Basic.SingleGalleryMode, Arg.Any<bool>()).Returns(false);
_settings.GetOrDefault(Settings.Gallery.Upload, Arg.Any<bool>(), Arg.Any<string>()).Returns(disabled);
_settings.GetOrDefault(Settings.Basic.GuestGalleryCreation, Arg.Any<bool>()).Returns(false);
var controller = new GalleryController(_env, _settings, _database, _file, _deviceDetector, _image, _notification, _encryption, _url, _logger, _localizer);
controller.ControllerContext.HttpContext = MockData.MockHttpContext();
ViewResult actual = (ViewResult)await controller.Index("default", "password", ViewMode.Default, GalleryGroup.None, GalleryOrder.Descending);
ViewResult actual = (ViewResult)await controller.Index(id, identifier, "password", ViewMode.Default, GalleryGroup.None, GalleryOrder.Random);
Assert.That(actual, Is.TypeOf<ViewResult>());
Assert.That(actual?.Model, Is.Not.Null);
PhotoGallery model = (PhotoGallery)actual.Model;
Assert.That(model?.FileUploader, expected ? Is.Not.Null : Is.Null);
Assert.That(model?.Gallery?.Identifier, Is.EqualTo(expected));
}
[TestCase(true, true)]
[TestCase(false, false)]
public async Task GalleryController_UploadDisabled(bool enabled, bool expected)
{
_deviceDetector.ParseDeviceType(Arg.Any<string>()).Returns(DeviceType.Desktop);
_settings.GetOrDefault(Settings.Basic.SingleGalleryMode, Arg.Any<bool>()).Returns(false);
_settings.GetOrDefault(Settings.Gallery.Upload, Arg.Any<bool>(), Arg.Any<int>()).Returns(enabled);
var controller = new GalleryController(_env, _settings, _database, _file, _deviceDetector, _image, _notification, _encryption, _url, _logger, _localizer);
controller.ControllerContext.HttpContext = MockData.MockHttpContext();
ViewResult actual = (ViewResult)await controller.Index("default", "default", "password", ViewMode.Default, GalleryGroup.None, GalleryOrder.Descending);
Assert.That(actual, Is.TypeOf<ViewResult>());
Assert.That(actual?.Model, Is.Not.Null);
PhotoGallery model = (PhotoGallery)actual.Model;
Assert.That(model?.UploadActivated, Is.EqualTo(expected));
}
[TestCase("1970-01-01 00:00", true)]
@@ -155,17 +171,17 @@ namespace WeddingShare.UnitTests.Tests.Helpers
{
_deviceDetector.ParseDeviceType(Arg.Any<string>()).Returns(DeviceType.Desktop);
_settings.GetOrDefault(Settings.Basic.SingleGalleryMode, Arg.Any<bool>()).Returns(false);
_settings.GetOrDefault(Settings.Gallery.UploadPeriod, Arg.Any<string>(), Arg.Any<string>()).Returns(uploadPeriod);
_settings.GetOrDefault(Settings.Gallery.UploadPeriod, Arg.Any<string>(), Arg.Any<int>()).Returns(uploadPeriod);
var controller = new GalleryController(_env, _settings, _database, _file, _deviceDetector, _image, _notification, _encryption, _url, _logger, _localizer);
controller.ControllerContext.HttpContext = MockData.MockHttpContext();
ViewResult actual = (ViewResult)await controller.Index("default", "password", ViewMode.Default, GalleryGroup.None, GalleryOrder.Descending);
ViewResult actual = (ViewResult)await controller.Index("default", "default", "password", ViewMode.Default, GalleryGroup.None, GalleryOrder.Descending);
Assert.That(actual, Is.TypeOf<ViewResult>());
Assert.That(actual?.Model, Is.Not.Null);
PhotoGallery model = (PhotoGallery)actual.Model;
Assert.That(model?.FileUploader, expected ? Is.Not.Null : Is.Null);
Assert.That(model?.UploadActivated, Is.EqualTo(expected));
}
[TestCase(DeviceType.Desktop, ViewMode.Default, GalleryGroup.None, GalleryOrder.Descending)]
@@ -179,17 +195,16 @@ namespace WeddingShare.UnitTests.Tests.Helpers
var controller = new GalleryController(_env, _settings, _database, _file, _deviceDetector, _image, _notification, _encryption, _url, _logger, _localizer);
controller.ControllerContext.HttpContext = MockData.MockHttpContext();
ViewResult actual = (ViewResult)await controller.Index("default", "password", mode, group, order);
ViewResult actual = (ViewResult)await controller.Index("default", "default", "password", mode, group, order);
Assert.That(actual, Is.TypeOf<ViewResult>());
Assert.That(actual?.Model, Is.Not.Null);
PhotoGallery model = (PhotoGallery)actual.Model;
Assert.That(model?.GalleryId, Is.EqualTo(1));
Assert.That(model?.GalleryName, Is.EqualTo("default"));
Assert.That(model?.Gallery?.Id, Is.EqualTo(1));
Assert.That(model?.Gallery?.Identifier, Is.EqualTo("default"));
Assert.That(model?.Gallery?.Name, Is.EqualTo("default"));
Assert.That(model?.SecretKey, Is.EqualTo("password"));
Assert.That(model.ViewMode, Is.EqualTo(mode));
Assert.That(model?.FileUploader?.GalleryId, Is.EqualTo("default"));
Assert.That(model?.FileUploader?.SecretKey, Is.EqualTo("password"));
Assert.That(model?.FileUploader?.UploadUrl, Is.EqualTo("/Gallery/UploadImage"));
}
[TestCase(true, 1, null)]
@@ -214,7 +229,7 @@ namespace WeddingShare.UnitTests.Tests.Helpers
session: session,
form: new Dictionary<string, StringValues>
{
{ "Id", "default" },
{ "Id", "1" },
{ "SecretKey", "password" }
},
files: files);
@@ -244,7 +259,7 @@ namespace WeddingShare.UnitTests.Tests.Helpers
session: session,
form: new Dictionary<string, StringValues>
{
{ "Id", "default" },
{ "Id", "1" },
{ "SecretKey", "password" }
},
files: files);
@@ -282,7 +297,7 @@ namespace WeddingShare.UnitTests.Tests.Helpers
var controller = new GalleryController(_env, _settings, _database, _file, _deviceDetector, _image, _notification, _encryption, _url, _logger, _localizer);
controller.ControllerContext.HttpContext = MockData.MockHttpContext(form: new Dictionary<string, StringValues>
{
{ "Id", "default" },
{ "Id", "1" },
{ "SecretKey", key }
});
@@ -317,7 +332,7 @@ namespace WeddingShare.UnitTests.Tests.Helpers
var controller = new GalleryController(_env, _settings, _database, _file, _deviceDetector, _image, _notification, _encryption, _url, _logger, _localizer);
controller.ControllerContext.HttpContext = MockData.MockHttpContext(form: new Dictionary<string, StringValues>
{
{ "Id", "default" },
{ "Id", "1" },
{ "SecretKey", "password" }
});
@@ -336,7 +351,7 @@ namespace WeddingShare.UnitTests.Tests.Helpers
controller.ControllerContext.HttpContext = MockData.MockHttpContext(
form: new Dictionary<string, StringValues>
{
{ "Id", "default" },
{ "Id", "1" },
{ "SecretKey", "password" }
},
files: new FormFileCollection() {
@@ -358,7 +373,7 @@ namespace WeddingShare.UnitTests.Tests.Helpers
controller.ControllerContext.HttpContext = MockData.MockHttpContext(
form: new Dictionary<string, StringValues>
{
{ "Id", "default" },
{ "Id", "1" },
{ "SecretKey", "password" }
},
files: new FormFileCollection() {
@@ -372,5 +387,49 @@ namespace WeddingShare.UnitTests.Tests.Helpers
Assert.That(JsonResponseHelper.GetPropertyValue(actual.Value, "uploaded", 0), Is.EqualTo(0));
Assert.That(JsonResponseHelper.GetPropertyValue(actual.Value, "errors", new List<string>()).Count, Is.GreaterThan(0));
}
private IDictionary<string, GalleryModel> GetMockData()
{
return new Dictionary<string, GalleryModel>()
{
{
"default", new GalleryModel()
{
Id = 1,
Identifier = "default",
Name = "default",
SecretKey = "password",
ApprovedItems = 32,
PendingItems = 50,
TotalItems = 72
}
},
{
"blaa", new GalleryModel()
{
Id = 2,
Identifier = "blaa",
Name = "blaa",
SecretKey = "456789",
ApprovedItems = 2,
PendingItems = 1,
TotalItems = 3
}
},
{
"missing", new GalleryModel()
{
Id = 101,
Identifier = "missing",
Name = "missing",
SecretKey = "123456",
ApprovedItems = 0,
PendingItems = 0,
TotalItems = 0,
Owner = 0
}
}
};
}
}
}

View File

@@ -1,5 +1,6 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Logging;
using WeddingShare.Constants;
@@ -16,6 +17,7 @@ namespace WeddingShare.UnitTests.Tests.Helpers
private readonly ISettingsHelper _settings = Substitute.For<ISettingsHelper>();
private readonly IDatabaseHelper _database = Substitute.For<IDatabaseHelper>();
private readonly IDeviceDetector _deviceDetector = Substitute.For<IDeviceDetector>();
private readonly IAuditHelper _audit = Substitute.For<IAuditHelper>();
private readonly ILogger<HomeController> _logger = Substitute.For<ILogger<HomeController>>();
private readonly IStringLocalizer<Lang.Translations> _localizer = Substitute.For<IStringLocalizer<Lang.Translations>>();
@@ -40,9 +42,9 @@ namespace WeddingShare.UnitTests.Tests.Helpers
{
_deviceDetector.ParseDeviceType(Arg.Any<string>()).Returns(deviceType);
_settings.GetOrDefault(Settings.Basic.SingleGalleryMode, Arg.Any<bool>()).Returns(singleGalleryMode);
_settings.GetOrDefault(Settings.Gallery.SecretKey, Arg.Any<string>(), Arg.Any<string>()).Returns(secretKey);
_settings.GetOrDefault(Settings.Gallery.SecretKey, Arg.Any<string>(), Arg.Any<int>()).Returns(secretKey);
var controller = new HomeController(_settings, _database, _deviceDetector, _logger, _localizer);
var controller = new HomeController(_settings, _database, _deviceDetector, _audit, _logger, _localizer);
controller.ControllerContext.HttpContext = new DefaultHttpContext()
{
Session = new MockSession()
@@ -60,7 +62,7 @@ namespace WeddingShare.UnitTests.Tests.Helpers
Assert.That(actual.Permanent, Is.EqualTo(false));
Assert.That(actual.ControllerName, Is.EqualTo("Gallery"));
Assert.That(actual.ActionName, Is.EqualTo("Index"));
Assert.That(actual.RouteValues, Is.Null);
Assert.That(actual.RouteValues, singleGalleryMode ? Is.EqualTo(new RouteValueDictionary { { "identifier", "default" } }) : Is.Null);
Assert.That(actual.Fragment, Is.Null);
}
}

View File

@@ -0,0 +1,62 @@
using WeddingShare.Helpers;
namespace WeddingShare.UnitTests.Tests.Helpers
{
public class HtmlSanitizerTests
{
public HtmlSanitizerTests()
{
}
[SetUp]
public void Setup()
{
}
[TestCase("<div><b>Test</b></div>", new[] { "b" }, "<div>Test</div>")]
[TestCase("<div><b>Test</b></div>", new[] { "div" }, "<b>Test</b>")]
[TestCase("<div><b>Test</b></div>", new[] { "div", "b" }, "Test")]
[TestCase("<script src=\"asdasd\">Test</script>", new[] { "script" }, "Test")]
[TestCase("<script src=\"asdasd\"/>", new[] { "script" }, "")]
[TestCase("<img src=\"asdasd\"/>", new[] { "img" }, "")]
[TestCase("Blaa<div><b>Test</b></div>", new[] { ".*" }, "Blaa")]
public void HtmlSanitizer_SanitizeHtmlTags(string input, string[] tags, string expected)
{
var actual = HtmlSanitizer.SanitizeHtmlTags(input, tags);
Assert.That(actual, Is.EqualTo(expected));
}
[TestCase("<script src=\"blaa\" link=\"unit\"></script>", new[] { "src" }, "<script link=\"unit\"></script>")]
[TestCase("<script src=\"blaa\" link=\"unit\"></script>", new[] { "link" }, "<script src=\"blaa\" ></script>")]
[TestCase("<script src=\"blaa\" link=\"unit\"></script>", new[] { ".*" }, "></script>")]
public void HtmlSanitizer_SanitizeHtmlAttributes(string input, string[] tags, string expected)
{
var actual = HtmlSanitizer.SanitizeHtmlAttributes(input, tags);
Assert.That(actual, Is.EqualTo(expected));
}
[TestCase("this is a https://unit.com/ test", "this is a test")]
[TestCase("this is a https://www.unit.com/ test", "this is a test")]
[TestCase("this is a https://www.unit.com/home test", "this is a test")]
[TestCase("this is a http://unit.com/ test", "this is a test")]
[TestCase("this is a http://www.unit.com/ test", "this is a test")]
[TestCase("this is a http://www.unit.com/home test", "this is a test")]
public void HtmlSanitizer_SanitizeHtmlAttributes(string input, string expected)
{
var actual = HtmlSanitizer.SanitizeLinks(input);
Assert.That(actual, Is.EqualTo(expected));
}
[TestCase("this is a test", false)]
[TestCase("this is a <img src=x onerror=alert(0)> test", true)]
[TestCase("this is a <script/> test", true)]
[TestCase("this is a <script></script> test", true)]
[TestCase("this is a http://www.unit.com/home test", true)]
[TestCase("this is a https://www.unit.com/home test", true)]
public void HtmlSanitizer_MayContainXss(string input, bool expected)
{
var actual = HtmlSanitizer.MayContainXss(input);
Assert.That(actual, Is.EqualTo(expected));
}
}
}

View File

@@ -0,0 +1,50 @@
using System.Globalization;
using WeddingShare.Helpers;
namespace WeddingShare.UnitTests.Tests.Helpers
{
public class LanguageHelperTests
{
private readonly List<CultureInfo> _supportedCultures;
public LanguageHelperTests()
{
_supportedCultures = new List<CultureInfo>()
{
new CultureInfo("en-GB"),
new CultureInfo("fr-FR"),
new CultureInfo("de-DE"),
};
}
[SetUp]
public void Setup()
{
}
[TestCase("en-GB", true)]
[TestCase("fr-FR", true)]
[TestCase("de-DE", true)]
[TestCase("de-de", true)]
[TestCase("en-US", false)]
[TestCase("cn-CSS", false)]
[TestCase("", false)]
public void LanguageHelper_IsCultureSupported(string culture, bool expected)
{
var actual = new LanguageHelper().IsCultureSupported(culture, _supportedCultures);
Assert.That(actual, Is.EqualTo(expected));
}
[TestCase("en-GB", "en-GB", "en-GB")]
[TestCase("en-US", "en-GB", "en-GB")]
[TestCase("en-US", "en-US", "en-GB")]
[TestCase("fr-FR", "en-GB", "fr-FR")]
[TestCase("de-DE", "fr-FR", "de-DE")]
[TestCase("de-de", "fr-fr", "de-DE")]
public void LanguageHelper_GetOrFallbackCulture(string culture, string fallback, string expected)
{
var actual = new LanguageHelper().GetOrFallbackCulture(culture, fallback, _supportedCultures);
Assert.That(actual, Is.EqualTo(expected));
}
}
}

View File

@@ -63,8 +63,8 @@ namespace WeddingShare.UnitTests.Tests.Helpers
Assert.That(actual, Is.EqualTo(expected));
}
[TestCase(null, false)]
[TestCase("", false)]
[TestCase(null, true)]
[TestCase("", true)]
[TestCase("UnitTest", true)]
public async Task NtfyHelper_Token(string? token, bool expected)
{

View File

@@ -1,4 +1,6 @@
using Microsoft.Extensions.Logging;
using System;
using WeddingShare.Constants;
using WeddingShare.Helpers;
using WeddingShare.Helpers.Database;
using WeddingShare.Models.Database;
@@ -171,5 +173,23 @@ namespace WeddingShare.UnitTests.Tests.Helpers
var actual = await new SettingsHelper(_database, _config, _logger).GetOrDefault(key, defaultValue);
Assert.That(actual, Is.EqualTo(!string.IsNullOrWhiteSpace(expected) ? DateTime.Parse(expected) : null));
}
[TestCase("1.0.0", 3, "1.0.0")]
[TestCase("1.0.0", 4, "1.0.0.0")]
[TestCase("1.0.0.0", 3, "1.0.0")]
[TestCase("1.0.0.0", 4, "1.0.0.0")]
[TestCase("1.2.3.4", 2, "1.2")]
public async Task SettingsHelper_GetReleaseVersion(string version, int places, string expected)
{
var environment = Substitute.For<IEnvironmentWrapper>();
var configuration = ConfigurationHelper.MockConfiguration(new Dictionary<string, string?>()
{
{ "Release:Version", version },
});
var config = new ConfigHelper(environment, configuration, Substitute.For<ILogger<ConfigHelper>>());
var actual = await new SettingsHelper(_database, config, _logger).GetReleaseVersion(places);
Assert.That(actual, Is.EqualTo(expected));
}
}
}

View File

@@ -0,0 +1,40 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using WeddingShare.Enums;
using WeddingShare.Extensions;
using WeddingShare.Helpers;
namespace WeddingShare.Attributes
{
public class RequiresRoleAttribute : ActionFilterAttribute
{
public UserLevel User { get; set; } = UserLevel.Basic;
public AccessPermissions Permission { get; set; } = AccessPermissions.Login;
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
try
{
var level = filterContext.HttpContext?.User?.Identity?.GetUserLevel() ?? UserLevel.Basic;
if (level < this.User)
{
filterContext.Result = new RedirectToActionResult("Index", "Error", new { Reason = ErrorCode.Unauthorized }, false);
}
var pemissions = filterContext.HttpContext?.User?.Identity?.GetUserPermissions() ?? AccessPermissions.None;
if (!pemissions.HasFlag(this.Permission))
{
filterContext.Result = new RedirectToActionResult("Index", "Error", new { Reason = ErrorCode.Unauthorized }, false);
}
}
catch (Exception ex)
{
var logger = filterContext.HttpContext.RequestServices.GetService<ILogger<RequiresSecretKeyAttribute>>();
if (logger != null)
{
logger.LogError(ex, $"Failed to validate user role - {ex?.Message}");
}
}
}
}
}

View File

@@ -13,46 +13,66 @@ namespace WeddingShare.Attributes
{
try
{
int? galleryId = null;
var request = filterContext.HttpContext.Request;
var galleryId = (request.Query.ContainsKey("id") && !string.IsNullOrWhiteSpace(request.Query["id"])) ? request.Query["id"].ToString().ToLower() : "default";
var databaseHelper = filterContext.HttpContext.RequestServices.GetService<IDatabaseHelper>();
var gallery = databaseHelper?.GetGallery(galleryId).Result;
if (gallery != null)
if (databaseHelper != null)
{
var encryptionHelper = filterContext.HttpContext.RequestServices.GetService<IEncryptionHelper>();
if (encryptionHelper != null)
var galleryIdentifier = (request.Query.ContainsKey("identifier") && !string.IsNullOrWhiteSpace(request.Query["identifier"])) ? request.Query["identifier"].ToString().ToLower() : null;
if (!string.IsNullOrWhiteSpace(galleryIdentifier))
{
galleryId = databaseHelper.GetGalleryId(galleryIdentifier).Result;
}
if (galleryId == null)
{
var key = request.Query.ContainsKey("key") ? request.Query["key"].ToString() : string.Empty;
var isEncrypted = request.Query.ContainsKey("enc") ? bool.Parse(request.Query["enc"].ToString().ToLower()) : false;
if (!isEncrypted && !string.IsNullOrWhiteSpace(key) && encryptionHelper.IsEncryptionEnabled())
{
var queryString = HttpUtility.ParseQueryString(request.QueryString.ToString());
queryString.Set("enc", "true");
queryString.Set("key", encryptionHelper.Encrypt(key));
filterContext.Result = new RedirectResult($"/Gallery?{queryString.ToString()}");
var galleryName = (request.Query.ContainsKey("id") && !string.IsNullOrWhiteSpace(request.Query["id"])) ? request.Query["id"].ToString().ToLower() : "default";
if (!string.IsNullOrWhiteSpace(galleryName))
{
galleryId = (databaseHelper?.GetGalleryIdByName(galleryName)?.Result) ?? 1;
}
else
{
var settingsHelper = filterContext.HttpContext.RequestServices.GetService<ISettingsHelper>();
if (settingsHelper != null)
{
var secretKey = settingsHelper.GetOrDefault(Settings.Gallery.SecretKey, string.Empty, galleryId).Result ?? string.Empty;
if (!string.IsNullOrWhiteSpace(secretKey))
{
secretKey = encryptionHelper.IsEncryptionEnabled() ? encryptionHelper.Encrypt(secretKey) : secretKey;
if (!string.IsNullOrWhiteSpace(secretKey) && !string.Equals(secretKey, key))
{
var logger = filterContext.HttpContext.RequestServices.GetService<ILogger<RequiresSecretKeyAttribute>>();
if (logger != null)
{
logger.LogWarning($"A request was made to an endpoint with an invalid secure key");
}
}
filterContext.Result = new RedirectToActionResult("Index", "Error", new { Reason = ErrorCode.InvalidSecretKey }, false);
if (galleryId != null)
{
var gallery = databaseHelper?.GetGallery(galleryId.Value).Result;
if (gallery != null)
{
var encryptionHelper = filterContext.HttpContext.RequestServices.GetService<IEncryptionHelper>();
if (encryptionHelper != null)
{
var key = request.Query.ContainsKey("key") ? request.Query["key"].ToString() : string.Empty;
var isEncrypted = request.Query.ContainsKey("enc") ? bool.Parse(request.Query["enc"].ToString().ToLower()) : false;
if (!isEncrypted && !string.IsNullOrWhiteSpace(key) && encryptionHelper.IsEncryptionEnabled())
{
var queryString = HttpUtility.ParseQueryString(request.QueryString.ToString());
queryString.Set("enc", "true");
queryString.Set("key", encryptionHelper.Encrypt(key));
filterContext.Result = new RedirectResult($"/Gallery?{queryString.ToString()}");
}
else
{
var settingsHelper = filterContext.HttpContext.RequestServices.GetService<ISettingsHelper>();
if (settingsHelper != null)
{
var secretKey = settingsHelper.GetOrDefault(Settings.Gallery.SecretKey, string.Empty, galleryId).Result ?? string.Empty;
if (!string.IsNullOrWhiteSpace(secretKey))
{
secretKey = encryptionHelper.IsEncryptionEnabled() ? encryptionHelper.Encrypt(secretKey) : secretKey;
if (!string.IsNullOrWhiteSpace(secretKey) && !string.Equals(secretKey, key))
{
var logger = filterContext.HttpContext.RequestServices.GetService<ILogger<RequiresSecretKeyAttribute>>();
if (logger != null)
{
logger.LogWarning($"A request was made to an endpoint with an invalid secure key");
}
filterContext.Result = new RedirectToActionResult("Index", "Error", new { Reason = ErrorCode.InvalidSecretKey }, false);
}
}
}
}
}

View File

@@ -8,19 +8,36 @@ namespace WeddingShare.BackgroundWorkers
{
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
var cron = await settingsHelper.GetOrDefault(BackgroundServices.Schedules.Cleanup, "0 4 * * *");
var schedule = CrontabSchedule.Parse(cron, new CrontabSchedule.ParseOptions() { IncludingSeconds = cron.Split(new[] { ' ' }, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries).Length == 6 });
await Task.Delay((int)TimeSpan.FromSeconds(10).TotalMilliseconds, stoppingToken);
while (!stoppingToken.IsCancellationRequested)
var enabled = await settingsHelper.GetOrDefault(BackgroundServices.Cleanup.Enabled, true);
if (enabled)
{
var now = DateTime.Now;
var nextExecutionTime = schedule.GetNextOccurrence(now);
var waitTime = nextExecutionTime - now;
await Task.Delay(waitTime, stoppingToken);
var cron = await settingsHelper.GetOrDefault(BackgroundServices.Cleanup.Schedule, "0 4 * * *");
var nextExecutionTime = DateTime.Now.AddSeconds(10);
await Cleanup();
while (!stoppingToken.IsCancellationRequested)
{
var currentCron = await settingsHelper.GetOrDefault(BackgroundServices.Cleanup.Schedule, "0 4 * * *");
var now = DateTime.Now;
if (now >= nextExecutionTime)
{
await Cleanup();
var schedule = CrontabSchedule.Parse(cron, new CrontabSchedule.ParseOptions() { IncludingSeconds = cron.Split(new[] { ' ' }, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries).Length == 6 });
nextExecutionTime = schedule.GetNextOccurrence(now);
}
else
{
if (!currentCron.Equals(cron))
{
nextExecutionTime = DateTime.Now;
}
await Task.Delay(TimeSpan.FromSeconds(1), stoppingToken);
}
cron = currentCron;
}
}
}

View File

@@ -13,20 +13,36 @@ namespace WeddingShare.BackgroundWorkers
{
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
var cron = settingsHelper.GetOrDefault(BackgroundServices.Schedules.DirectoryScanner, "*/30 * * * *").Result;
var schedule = CrontabSchedule.Parse(cron, new CrontabSchedule.ParseOptions() { IncludingSeconds = cron.Split(new[] { ' ' }, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries).Length == 6 });
await Task.Delay((int)TimeSpan.FromSeconds(10).TotalMilliseconds, stoppingToken);
await ScanForFiles();
while (!stoppingToken.IsCancellationRequested)
var enabled = await settingsHelper.GetOrDefault(BackgroundServices.DirectoryScanner.Enabled, true);
if (enabled)
{
var now = DateTime.Now;
var nextExecutionTime = schedule.GetNextOccurrence(now);
var waitTime = nextExecutionTime - now;
await Task.Delay(waitTime, stoppingToken);
var cron = await settingsHelper.GetOrDefault(BackgroundServices.DirectoryScanner.Schedule, "*/30 * * * *");
var nextExecutionTime = DateTime.Now.AddSeconds(10);
await ScanForFiles();
while (!stoppingToken.IsCancellationRequested)
{
var currentCron = await settingsHelper.GetOrDefault(BackgroundServices.DirectoryScanner.Schedule, "*/30 * * * *");
var now = DateTime.Now;
if (now >= nextExecutionTime)
{
await ScanForFiles();
var schedule = CrontabSchedule.Parse(cron, new CrontabSchedule.ParseOptions() { IncludingSeconds = cron.Split(new[] { ' ' }, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries).Length == 6 });
nextExecutionTime = schedule.GetNextOccurrence(now);
}
else
{
if (!currentCron.Equals(cron))
{
nextExecutionTime = DateTime.Now;
}
await Task.Delay(TimeSpan.FromSeconds(1), stoppingToken);
}
cron = currentCron;
}
}
}
@@ -51,141 +67,117 @@ namespace WeddingShare.BackgroundWorkers
var uploadsDirectory = Path.Combine(hostingEnvironment.WebRootPath, Directories.Uploads);
if (fileHelper.DirectoryExists(uploadsDirectory))
{
var searchPattern = !settingsHelper.GetOrDefault(Settings.Basic.SingleGalleryMode, false).Result ? "*" : "default";
var galleries = fileHelper.GetDirectories(uploadsDirectory, searchPattern, SearchOption.TopDirectoryOnly)?.Where(x => !Path.GetFileName(x).StartsWith("."));
if (galleries != null)
var galleryDirs = fileHelper.GetDirectories(uploadsDirectory, "*", SearchOption.TopDirectoryOnly)?.Where(x => !Path.GetFileName(x).StartsWith("."));
if (galleryDirs != null)
{
foreach (var gallery in galleries)
foreach (var galleryDir in galleryDirs)
{
try
{
var id = Path.GetFileName(gallery).ToLower();
var galleryItem = await databaseHelper.GetGallery(id);
if (galleryItem == null)
{
if (await databaseHelper.GetGalleryCount() < await settingsHelper.GetOrDefault(Settings.Basic.MaxGalleryCount, 1000000))
{
galleryItem = await databaseHelper.AddGallery(new GalleryModel()
{
Name = id
});
}
}
var identifier = Path.GetFileName(galleryDir).ToLower();
if (galleryItem != null)
var galleryId = await databaseHelper.GetGalleryId(identifier);
if (galleryId != null)
{
var allowedFileTypes = settingsHelper.GetOrDefault(Settings.Gallery.AllowedFileTypes, ".jpg,.jpeg,.png,.mp4,.mov", galleryItem?.Name).Result.Split(',', StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries);
var galleryItems = await databaseHelper.GetAllGalleryItems(galleryItem.Id);
if (Path.Exists(gallery))
var galleryItem = await databaseHelper.GetGallery(galleryId.Value);
if (galleryItem == null)
{
var approvedFiles = fileHelper.GetFiles(gallery, "*.*", SearchOption.TopDirectoryOnly).Where(x => allowedFileTypes.Any(y => string.Equals(Path.GetExtension(x).Trim('.'), y.Trim('.'), StringComparison.OrdinalIgnoreCase)));
if (approvedFiles != null)
if (await databaseHelper.GetGalleryCount() < await settingsHelper.GetOrDefault(Settings.Basic.MaxGalleryCount, 1000000))
{
foreach (var file in approvedFiles)
galleryItem = await databaseHelper.AddGallery(new GalleryModel()
{
try
{
var filename = Path.GetFileName(file);
var g = galleryItems.FirstOrDefault(x => string.Equals(x.Title, filename, StringComparison.OrdinalIgnoreCase));
if (g == null)
{
g = await databaseHelper.AddGalleryItem(new GalleryItemModel()
{
GalleryId = galleryItem.Id,
Title = filename,
Checksum = await fileHelper.GetChecksum(file),
MediaType = imageHelper.GetMediaType(file),
State = GalleryItemState.Approved,
UploadedDate = await fileHelper.GetCreationDatetime(file),
FileSize = fileHelper.FileSize(file),
});
}
var thumbnailPath = Path.Combine(thumbnailsDirectory, $"{Path.GetFileNameWithoutExtension(file)}.webp");
if (!fileHelper.FileExists(thumbnailPath))
{
await imageHelper.GenerateThumbnail(file, thumbnailPath, settingsHelper.GetOrDefault(Settings.Basic.ThumbnailSize, 720).Result);
}
else
{
using (var img = await Image.LoadAsync(thumbnailPath))
{
var width = img.Width;
img.Mutate(x => x.AutoOrient());
if (width != img.Width)
{
await img.SaveAsWebpAsync(thumbnailPath);
}
}
}
if (g != null)
{
var updated = false;
if (g.UploadedDate == null)
{
g.UploadedDate = new FileInfo(file).CreationTimeUtc;
updated = true;
}
if (g.MediaType == MediaType.Unknown)
{
g.MediaType = imageHelper.GetMediaType(file);
updated = true;
}
if (g.Orientation == ImageOrientation.None)
{
g.Orientation = await imageHelper.GetOrientation(thumbnailPath);
updated = true;
}
if (g.FileSize == 0)
{
g.FileSize = fileHelper.FileSize(file);
updated = true;
}
if (updated)
{
await databaseHelper.EditGalleryItem(g);
}
}
}
catch (Exception ex)
{
logger.LogError(ex, $"An error occurred while scanning file '{file}'");
}
}
Name = identifier,
Owner = 0
});
}
}
if (Path.Exists(Path.Combine(gallery, "Pending")))
if (galleryItem != null)
{
var allowedFileTypes = settingsHelper.GetOrDefault(Settings.Gallery.AllowedFileTypes, ".jpg,.jpeg,.png,.mp4,.mov", galleryItem?.Id).Result.Split(',', StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries);
var galleryItems = await databaseHelper.GetAllGalleryItems(galleryItem.Id);
if (Path.Exists(galleryDir))
{
var pendingFiles = fileHelper.GetFiles(Path.Combine(gallery, "Pending"), "*.*", SearchOption.TopDirectoryOnly).Where(x => allowedFileTypes.Any(y => string.Equals(Path.GetExtension(x).Trim('.'), y.Trim('.'), StringComparison.OrdinalIgnoreCase)));
if (pendingFiles != null)
var approvedFiles = fileHelper.GetFiles(galleryDir, "*.*", SearchOption.TopDirectoryOnly).Where(x => allowedFileTypes.Any(y => string.Equals(Path.GetExtension(x).Trim('.'), y.Trim('.'), StringComparison.OrdinalIgnoreCase)));
if (approvedFiles != null)
{
foreach (var file in pendingFiles)
foreach (var file in approvedFiles)
{
try
{
var filename = Path.GetFileName(file);
if (!galleryItems.Exists(x => string.Equals(x.Title, filename, StringComparison.OrdinalIgnoreCase)))
var g = galleryItems.FirstOrDefault(x => string.Equals(x.Title, filename, StringComparison.OrdinalIgnoreCase));
if (g == null)
{
await databaseHelper.AddGalleryItem(new GalleryItemModel()
g = await databaseHelper.AddGalleryItem(new GalleryItemModel()
{
GalleryId = galleryItem.Id,
Title = filename,
Checksum = await fileHelper.GetChecksum(file),
MediaType = imageHelper.GetMediaType(file),
State = GalleryItemState.Pending,
State = GalleryItemState.Approved,
UploadedDate = await fileHelper.GetCreationDatetime(file),
FileSize = new FileInfo(file).Length
FileSize = fileHelper.FileSize(file)
});
}
var thumbnailDir = Path.Combine(thumbnailsDirectory, galleryItem.Name);
var thumbnailPath = Path.Combine(thumbnailDir, $"{Path.GetFileNameWithoutExtension(file)}.webp");
if (!fileHelper.FileExists(thumbnailPath))
{
fileHelper.CreateDirectoryIfNotExists(thumbnailDir);
await imageHelper.GenerateThumbnail(file, thumbnailPath, settingsHelper.GetOrDefault(Settings.Basic.ThumbnailSize, 720).Result);
fileHelper.DeleteFileIfExists(Path.Combine(thumbnailsDirectory, $"{Path.GetFileNameWithoutExtension(file)}.webp"));
}
else
{
using (var img = await Image.LoadAsync(thumbnailPath))
{
var width = img.Width;
img.Mutate(x => x.AutoOrient());
if (width != img.Width)
{
await img.SaveAsWebpAsync(thumbnailPath);
}
}
}
if (g != null)
{
var updated = false;
if (g.UploadedDate == null)
{
g.UploadedDate = new FileInfo(file).CreationTimeUtc;
updated = true;
}
if (g.MediaType == MediaType.Unknown)
{
g.MediaType = imageHelper.GetMediaType(file);
updated = true;
}
if (g.Orientation == ImageOrientation.None)
{
g.Orientation = await imageHelper.GetOrientation(thumbnailPath);
updated = true;
}
if (g.FileSize == 0)
{
g.FileSize = fileHelper.FileSize(file);
updated = true;
}
if (updated)
{
await databaseHelper.EditGalleryItem(g);
}
}
}
catch (Exception ex)
{
@@ -193,13 +185,45 @@ namespace WeddingShare.BackgroundWorkers
}
}
}
if (Path.Exists(Path.Combine(galleryDir, "Pending")))
{
var pendingFiles = fileHelper.GetFiles(Path.Combine(galleryDir, "Pending"), "*.*", SearchOption.TopDirectoryOnly).Where(x => allowedFileTypes.Any(y => string.Equals(Path.GetExtension(x).Trim('.'), y.Trim('.'), StringComparison.OrdinalIgnoreCase)));
if (pendingFiles != null)
{
foreach (var file in pendingFiles)
{
try
{
var filename = Path.GetFileName(file);
if (!galleryItems.Exists(x => string.Equals(x.Title, filename, StringComparison.OrdinalIgnoreCase)))
{
await databaseHelper.AddGalleryItem(new GalleryItemModel()
{
GalleryId = galleryItem.Id,
Title = filename,
Checksum = await fileHelper.GetChecksum(file),
MediaType = imageHelper.GetMediaType(file),
State = GalleryItemState.Pending,
UploadedDate = await fileHelper.GetCreationDatetime(file),
FileSize = new FileInfo(file).Length
});
}
}
catch (Exception ex)
{
logger.LogError(ex, $"An error occurred while scanning file '{file}'");
}
}
}
}
}
}
}
}
catch (Exception ex)
{
logger.LogError(ex, $"An error occurred while scanning directory '{gallery}'");
logger.LogError(ex, $"An error occurred while scanning directory '{galleryDir}'");
}
}
}
@@ -221,7 +245,8 @@ namespace WeddingShare.BackgroundWorkers
await databaseHelper.AddCustomResource(new CustomResourceModel()
{
FileName = filename,
UploadedBy = "DirectoryScanner"
UploadedBy = "DirectoryScanner",
Owner = 0
});
}
}

View File

@@ -11,19 +11,38 @@ namespace WeddingShare.BackgroundWorkers
{
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
if (await settingsHelper.GetOrDefault(Settings.Basic.EmailReport, true) && await settingsHelper.GetOrDefault(Notifications.Smtp.Enabled, false))
{
var cron = await settingsHelper.GetOrDefault(BackgroundServices.Schedules.EmailReport, "0 0 * * *");
var schedule = CrontabSchedule.Parse(cron, new CrontabSchedule.ParseOptions() { IncludingSeconds = cron.Split(new[] { ' ' }, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries).Length == 6 });
var enabled = await settingsHelper.GetOrDefault(BackgroundServices.EmailReport.Enabled, true);
if (enabled)
{
var cron = await settingsHelper.GetOrDefault(BackgroundServices.EmailReport.Schedule, "0 0 * * *");
var nextExecutionTime = DateTime.Now.AddSeconds(10);
while (!stoppingToken.IsCancellationRequested)
{
var now = DateTime.Now;
var nextExecutionTime = schedule.GetNextOccurrence(now);
var waitTime = nextExecutionTime - now;
await Task.Delay(waitTime, stoppingToken);
var currentCron = await settingsHelper.GetOrDefault(BackgroundServices.EmailReport.Schedule, "0 0 * * *");
await SendReport();
var now = DateTime.Now;
if (now >= nextExecutionTime)
{
if (await settingsHelper.GetOrDefault(Settings.Basic.EmailReport, true) && await settingsHelper.GetOrDefault(Notifications.Smtp.Enabled, false))
{
await SendReport();
}
var schedule = CrontabSchedule.Parse(cron, new CrontabSchedule.ParseOptions() { IncludingSeconds = cron.Split(new[] { ' ' }, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries).Length == 6 });
nextExecutionTime = schedule.GetNextOccurrence(now);
}
else
{
if (!currentCron.Equals(cron))
{
nextExecutionTime = DateTime.Now;
}
await Task.Delay(TimeSpan.FromSeconds(1), stoppingToken);
}
cron = currentCron;
}
}
}
@@ -38,15 +57,19 @@ namespace WeddingShare.BackgroundWorkers
var builder = new StringBuilder();
builder.AppendLine($"<h1>You have items pending review!</h1>");
foreach (var item in pendingItems.GroupBy(x => x.GalleryName).OrderBy(x => x.Key))
foreach (var item in pendingItems.GroupBy(x => x.GalleryId).OrderByDescending(x => x.Count()))
{
try
{
builder.AppendLine($"<p style=\"font-size: 16pt;\">{item.Key} - Pending Items ({item.Count()})</p>");
}
catch (Exception ex)
{
loggerFactory.CreateLogger<NotificationReport>().LogError(ex, $"Failed to build gallery report for id '{item?.Key}' - {ex?.Message}");
var gallery = await databaseHelper.GetGallery(item.Key);
if (gallery != null)
{
try
{
builder.AppendLine($"<p style=\"font-size: 16pt;\">{gallery.Name} - Pending Items ({item.Count()})</p>");
}
catch (Exception ex)
{
loggerFactory.CreateLogger<NotificationReport>().LogError(ex, $"Failed to build gallery report for '{gallery.Name}' - {ex?.Message}");
}
}
}

View File

@@ -15,6 +15,7 @@ namespace WeddingShare.Configurations
services.AddSingleton<ISmtpClientWrapper, SmtpClientWrapper>();
services.AddSingleton<IEncryptionHelper, EncryptionHelper>();
services.AddSingleton<IUrlHelper, UrlHelper>();
services.AddSingleton<IAuditHelper, AuditHelper>();
services.AddSingleton<ILanguageHelper, LanguageHelper>();
}
}

View File

@@ -0,0 +1,17 @@
using WeddingShare.Constants;
using WeddingShare.Helpers;
namespace WeddingShare.Configurations
{
internal static class WebClientConfiguration
{
public static void AddWebClientConfiguration(this IServiceCollection services, IConfigHelper config)
{
services.AddHttpClient("SponsorsClient", (client) =>
{
client.BaseAddress = new Uri(config.GetOrDefault(Sponsors.Url, "http://localhost:5000/"));
client.Timeout = TimeSpan.FromSeconds(5);
});
}
}
}

View File

@@ -2,12 +2,25 @@
{
public class BackgroundServices
{
public class Schedules
public class DirectoryScanner
{
public const string DirectoryScanner = "BackgroundServices:Schedules:Directory_Scanner";
public const string EmailReport = "BackgroundServices:Schedules:Email_Report";
public const string Cleanup = "BackgroundServices:Schedules:Cleanup";
public const string DemoSystemReset = "BackgroundServices:Schedules:Demo_System_Reset";
public const string BaseKey = "BackgroundServices:Directory_Scanner:";
public const string Enabled = "BackgroundServices:Directory_Scanner:Enabled";
public const string Schedule = "BackgroundServices:Directory_Scanner:Schedule";
}
public class EmailReport
{
public const string BaseKey = "BackgroundServices:Email_Report:";
public const string Enabled = "BackgroundServices:Email_Report:Enabled";
public const string Schedule = "BackgroundServices:Email_Report:Schedule";
}
public class Cleanup
{
public const string BaseKey = "BackgroundServices:Cleanup:";
public const string Enabled = "BackgroundServices:Cleanup:Enabled";
public const string Schedule = "BackgroundServices:Cleanup:Schedule";
}
}
}

View File

@@ -2,11 +2,9 @@
{
public class Directories
{
public const string Banners = "banners";
public const string Config = "config";
public const string CustomResources = "custom_resources";
public const string Images = "images";
public const string Logos = "logos";
public const string TempFiles = "temp";
public const string Thumbnails = "thumbnails";
public const string Uploads = "uploads";

View File

@@ -0,0 +1,7 @@
namespace WeddingShare.Constants
{
public class ProtectedValues
{
public static readonly string[] GalleryNames = [ "All", "Default" ];
}
}

View File

@@ -13,10 +13,16 @@
public class Admin
{
public const string BaseKey = "Settings:Account:Admin:";
public const string Username = "Settings:Account:Admin:Username";
public const string Password = "Settings:Account:Admin:Password";
public const string LogPassword = "Settings:Account:Admin:Log_Password";
}
public class Owner
{
public const string BaseKey = "Settings:Account:Owner:";
public const string Username = "Settings:Account:Owner:Username";
public const string Password = "Settings:Account:Owner:Password";
public const string LogPassword = "Settings:Account:Owner:Log_Password";
}
}
@@ -42,6 +48,7 @@
public const string BaseKey = "Settings:Database:";
public const string Type = "Settings:Database:Type";
public const string ConnectionString = "Settings:Database:Connection_String";
public const string DatabaseName = "Settings:Database:Database_Name";
public const string SyncFromConfig = "Settings:Database:Sync_From_Config";
}
@@ -67,6 +74,7 @@
public const string UploadPeriod = "Settings:Gallery:Upload_Period";
public const string AllowedFileTypes = "Settings:Gallery:Allowed_File_Types";
public const string CameraUploads = "Settings:Gallery:Camera_Uploads";
public const string ShowFilters = "Settings:Gallery:Show_Filters";
public class QRCode
{
@@ -74,6 +82,7 @@
public const string Enabled = "Settings:Gallery:QR_Code:Enabled";
public const string DefaultView = "Settings:Gallery:QR_Code:Default_View";
public const string DefaultSort = "Settings:Gallery:QR_Code:Default_Sort";
public const string IncludeCulture = "Settings:Gallery:QR_Code:Include_Culture";
}
}
@@ -114,5 +123,12 @@
public const string Enabled = "Settings:Themes:Enabled";
public const string Default = "Settings:Themes:Default";
}
public class Policies
{
public const string BaseKey = "Settings:Policies:";
public const string Enabled = "Settings:Policies:Enabled";
public const string CookiePolicy = "Settings:Policies:CookiePolicy";
}
}
}

View File

@@ -0,0 +1,13 @@
namespace WeddingShare.Constants
{
public class Sponsors
{
public const string Url = "Sponsors:Url";
public const string Endpoint = "Sponsors:Endpoint";
public class Github
{
public const string ProfileUrl = "Sponsors:Github:ProfileUrl";
}
}
}

View File

@@ -1,8 +1,10 @@
using System.IO.Compression;
using System.Net;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Localization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Localization;
using Mysqlx.Expr;
using WeddingShare.Attributes;
using WeddingShare.Constants;
using WeddingShare.Enums;
@@ -12,7 +14,6 @@ using WeddingShare.Helpers.Database;
using WeddingShare.Helpers.Notifications;
using WeddingShare.Models;
using WeddingShare.Models.Database;
using static WeddingShare.Constants.Notifications;
namespace WeddingShare.Controllers
{
@@ -57,24 +58,31 @@ namespace WeddingShare.Controllers
}
[HttpPost]
public async Task<IActionResult> Login(string id = "default", string? key = null)
public async Task<IActionResult> Login(string? id, string? identifier, string? key = null)
{
var append = new List<KeyValuePair<string, string>>()
{
new KeyValuePair<string, string>("id", id)
};
int? galleryId = 0;
GalleryModel? gallery = await _database.GetGallery(id);
if (!string.IsNullOrWhiteSpace(identifier))
{
galleryId = await _database.GetGalleryId(identifier);
}
else if (!string.IsNullOrWhiteSpace(id))
{
galleryId = await _database.GetGalleryIdByName(id);
}
GalleryModel? gallery = await _database.GetGallery(galleryId.Value);
if (gallery == null)
{
if (await _settings.GetOrDefault(Settings.Basic.GuestGalleryCreation, false))
{
if (await _database.GetGalleryCount() < await _settings.GetOrDefault(Settings.Basic.MaxGalleryCount, 1000000))
{
await _database.AddGallery(new GalleryModel()
gallery = await _database.AddGallery(new GalleryModel()
{
Name = id.ToLower(),
SecretKey = key
Name = id?.ToLower() ?? GalleryHelper.GenerateGalleryIdentifier(),
SecretKey = key,
Owner = 0
});
}
else
@@ -88,6 +96,11 @@ namespace WeddingShare.Controllers
}
}
var append = new List<KeyValuePair<string, string>>()
{
new KeyValuePair<string, string>("identifier", gallery.Identifier)
};
if (!string.IsNullOrWhiteSpace(key))
{
var enc = _encryptionHelper.IsEncryptionEnabled();
@@ -103,102 +116,127 @@ namespace WeddingShare.Controllers
[HttpGet]
[RequiresSecretKey]
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public async Task<IActionResult> Index(string id = "default", string? key = null, ViewMode? mode = null, GalleryGroup group = GalleryGroup.None, GalleryOrder order = GalleryOrder.Descending, GalleryFilter filter = GalleryFilter.All, bool partial = false)
public async Task<IActionResult> Index(string? id, string? identifier, string? key = null, ViewMode? mode = null, GalleryGroup group = GalleryGroup.None, GalleryOrder order = GalleryOrder.Descending, GalleryFilter filter = GalleryFilter.All, string? culture = null, bool partial = false)
{
id = (!string.IsNullOrWhiteSpace(id) && !await _settings.GetOrDefault(Settings.Basic.SingleGalleryMode, false)) ? id.ToLower() : "default";
int? galleryId = null;
try
if (!string.IsNullOrWhiteSpace(identifier))
{
ViewBag.ViewMode = mode ?? (ViewMode)await _settings.GetOrDefault(Settings.Gallery.DefaultView, (int)ViewMode.Default, id);
galleryId = await _database.GetGalleryId(identifier);
}
catch
else if (!string.IsNullOrWhiteSpace(id))
{
ViewBag.ViewMode = ViewMode.Default;
galleryId = await _database.GetGalleryIdByName(id);
}
var deviceType = HttpContext.Session.GetString(SessionKey.DeviceType);
if (string.IsNullOrWhiteSpace(deviceType))
if (galleryId != null)
{
deviceType = (await _deviceDetector.ParseDeviceType(Request.Headers["User-Agent"].ToString())).ToString();
HttpContext.Session.SetString(SessionKey.DeviceType, deviceType ?? "Desktop");
}
ViewBag.IsMobile = !string.Equals("Desktop", deviceType, StringComparison.OrdinalIgnoreCase);
var galleryPath = Path.Combine(UploadsDirectory, id);
_fileHelper.CreateDirectoryIfNotExists(galleryPath);
_fileHelper.CreateDirectoryIfNotExists(Path.Combine(galleryPath, "Pending"));
GalleryModel? gallery = await _database.GetGallery(id);
if (gallery != null)
{
ViewBag.GalleryId = gallery.Name;
var secretKey = await _settings.GetOrDefault(Settings.Gallery.SecretKey, string.Empty, gallery.Name);
ViewBag.SecretKey = secretKey;
var currentPage = 1;
try
if (!string.IsNullOrWhiteSpace(culture))
{
currentPage = int.Parse((Request.Query.ContainsKey("page") && !string.IsNullOrWhiteSpace(Request.Query["page"])) ? Request.Query["page"].ToString().ToLower() : "1");
}
catch { }
var mediaType = MediaType.All;
if (mode == ViewMode.Slideshow)
{
mediaType = MediaType.Image;
}
else
{
switch (filter)
{
case GalleryFilter.Images:
mediaType = MediaType.Image;
break;
case GalleryFilter.Videos:
mediaType = MediaType.Video;
break;
default:
mediaType = MediaType.All;
break;
}
}
var orientation = ImageOrientation.None;
switch (filter)
{
case GalleryFilter.Landscape:
orientation = ImageOrientation.Landscape;
break;
case GalleryFilter.Portrait:
orientation = ImageOrientation.Portrait;
break;
case GalleryFilter.Square:
orientation = ImageOrientation.Square;
break;
default:
orientation = ImageOrientation.None;
break;
}
var itemsPerPage = await _settings.GetOrDefault(Settings.Gallery.ItemsPerPage, 50, gallery?.Name);
var allowedFileTypes = (await _settings.GetOrDefault(Settings.Gallery.AllowedFileTypes, ".jpg,.jpeg,.png,.mp4,.mov", gallery?.Name)).Split(',', StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries);
var items = (await _database.GetAllGalleryItems(gallery?.Id, GalleryItemState.Approved, mediaType, orientation, group, order, itemsPerPage, currentPage))?.Where(x => allowedFileTypes.Any(y => string.Equals(Path.GetExtension(x.Title).Trim('.'), y.Trim('.'), StringComparison.OrdinalIgnoreCase)));
var isAdmin = User?.Identity != null && User.Identity.IsAuthenticated;
FileUploader? fileUploader = null;
if (!string.Equals("All", gallery?.Name, StringComparison.OrdinalIgnoreCase) && (await _settings.GetOrDefault(Settings.Gallery.Upload, true, gallery?.Name) || isAdmin))
{
var uploadActvated = isAdmin;
try
{
if (!uploadActvated)
{
var periods = (await _settings.GetOrDefault(Settings.Gallery.UploadPeriod, "1970-01-01 00:00", gallery?.Name))?.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
HttpContext.Session.SetString(SessionKey.SelectedLanguage, culture);
Response.Cookies.Append(
CookieRequestCultureProvider.DefaultCookieName,
CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture)),
new CookieOptions { Expires = DateTimeOffset.UtcNow.AddYears(1) }
);
}
catch { }
}
try
{
ViewBag.ViewMode = mode ?? (ViewMode)await _settings.GetOrDefault(Settings.Gallery.DefaultView, (int)ViewMode.Default, galleryId);
}
catch
{
ViewBag.ViewMode = ViewMode.Default;
}
var deviceType = HttpContext.Session.GetString(SessionKey.DeviceType);
if (string.IsNullOrWhiteSpace(deviceType))
{
deviceType = (await _deviceDetector.ParseDeviceType(Request.Headers["User-Agent"].ToString())).ToString();
HttpContext.Session.SetString(SessionKey.DeviceType, deviceType ?? "Desktop");
}
ViewBag.IsMobile = !string.Equals("Desktop", deviceType, StringComparison.OrdinalIgnoreCase);
GalleryModel? gallery = await _database.GetGallery(galleryId.Value);
if (gallery != null)
{
var galleryPath = Path.Combine(UploadsDirectory, gallery.Identifier);
_fileHelper.CreateDirectoryIfNotExists(galleryPath);
_fileHelper.CreateDirectoryIfNotExists(Path.Combine(galleryPath, "Pending"));
ViewBag.GalleryIdentifier = gallery.Identifier;
var secretKey = await _settings.GetOrDefault(Settings.Gallery.SecretKey, string.Empty, gallery.Id);
ViewBag.SecretKey = secretKey;
var currentPage = 1;
try
{
currentPage = int.Parse((Request.Query.ContainsKey("page") && !string.IsNullOrWhiteSpace(Request.Query["page"])) ? Request.Query["page"].ToString().ToLower() : "1");
}
catch { }
var mediaType = MediaType.All;
if (mode == ViewMode.Slideshow)
{
mediaType = MediaType.Image;
}
else
{
switch (filter)
{
case GalleryFilter.Images:
mediaType = MediaType.Image;
break;
case GalleryFilter.Videos:
mediaType = MediaType.Video;
break;
default:
mediaType = MediaType.All;
break;
}
}
var orientation = ImageOrientation.None;
switch (filter)
{
case GalleryFilter.Landscape:
orientation = ImageOrientation.Landscape;
break;
case GalleryFilter.Portrait:
orientation = ImageOrientation.Portrait;
break;
case GalleryFilter.Square:
orientation = ImageOrientation.Square;
break;
default:
orientation = ImageOrientation.None;
break;
}
var itemsPerPage = await _settings.GetOrDefault(Settings.Gallery.ItemsPerPage, 50, gallery?.Id);
var allowedFileTypes = (await _settings.GetOrDefault(Settings.Gallery.AllowedFileTypes, ".jpg,.jpeg,.png,.mp4,.mov", gallery?.Id)).Split(',', StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries);
var items = (await _database.GetAllGalleryItems(gallery?.Id, GalleryItemState.Approved, mediaType, orientation, group, order, itemsPerPage, currentPage))?.Where(x => allowedFileTypes.Any(y => string.Equals(Path.GetExtension(x.Title).Trim('.'), y.Trim('.'), StringComparison.OrdinalIgnoreCase)));
var userPermissions = User?.Identity?.GetUserPermissions() ?? AccessPermissions.None;
var isGalleryAdmin = User?.Identity != null && User.Identity.IsAuthenticated && userPermissions.HasFlag(AccessPermissions.Gallery_Upload);
var uploadActvated = !gallery.Identifier.Equals("All", StringComparison.OrdinalIgnoreCase) && (await _settings.GetOrDefault(Settings.Gallery.Upload, true, gallery?.Id) || isGalleryAdmin);
if (uploadActvated)
{
try
{
var periods = (await _settings.GetOrDefault(Settings.Gallery.UploadPeriod, "1970-01-01 00:00", gallery?.Id))?.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
if (periods != null)
{
{
uploadActvated = false;
var now = DateTime.UtcNow;
foreach (var period in periods)
{
@@ -225,48 +263,43 @@ namespace WeddingShare.Controllers
}
}
}
}
catch
{
uploadActvated = true;
catch
{
uploadActvated = true;
}
}
if (uploadActvated)
{
fileUploader = new FileUploader(gallery?.Name ?? "default", secretKey, "/Gallery/UploadImage", await _settings.GetOrDefault(Settings.IdentityCheck.RequireIdentityForUpload, false));
}
var itemCounts = await _database.GetGalleryItemCount(gallery?.Id, GalleryItemState.All, mediaType, orientation);
var model = new PhotoGallery()
{
Gallery = gallery,
SecretKey = secretKey,
Images = items?.Select(x => new PhotoGalleryImage()
{
Id = x.Id,
GalleryId = x.GalleryId,
Name = Path.GetFileName(x.Title),
UploadedBy = x.UploadedBy,
UploadDate = x.UploadedDate,
ImagePath = $"/{Path.Combine(UploadsDirectory, gallery.Identifier).Remove(_hostingEnvironment.WebRootPath).Replace('\\', '/').TrimStart('/')}/{x.Title}",
ThumbnailPath = $"/{Path.Combine(ThumbnailsDirectory, gallery.Identifier).Remove(_hostingEnvironment.WebRootPath).Replace('\\', '/').TrimStart('/')}/{Path.GetFileNameWithoutExtension(x.Title)}.webp",
ThumbnailPathFallback = $"/{ThumbnailsDirectory.Remove(_hostingEnvironment.WebRootPath).Replace('\\', '/').TrimStart('/')}/{Path.GetFileNameWithoutExtension(x.Title)}.webp",
MediaType = x.MediaType
})?.ToList(),
CurrentPage = currentPage,
ApprovedCount = (int)itemCounts["Approved"],
PendingCount = (int)itemCounts["Pending"],
ItemsPerPage = itemsPerPage,
UploadActivated = uploadActvated,
ViewMode = (ViewMode)ViewBag.ViewMode,
GroupBy = group,
OrderBy = order,
Pagination = order != GalleryOrder.Random,
LoadScripts = !partial
};
return partial ? PartialView("~/Views/Gallery/GalleryWrapper.cshtml", model) : View(model);
}
var itemCounts = await _database.GetGalleryItemCount(gallery?.Id, GalleryItemState.All, mediaType, orientation);
var model = new PhotoGallery()
{
GalleryId = gallery?.Id,
GalleryName = gallery?.Name,
Images = items?.Select(x => new PhotoGalleryImage()
{
Id = x.Id,
GalleryId = x.GalleryId,
GalleryName = x.GalleryName,
Name = Path.GetFileName(x.Title),
UploadedBy = x.UploadedBy,
UploadDate = x.UploadedDate,
ImagePath = $"/{Path.Combine(UploadsDirectory, x.GalleryName).Remove(_hostingEnvironment.WebRootPath).Replace('\\', '/').TrimStart('/')}/{x.Title}",
ThumbnailPath = $"/{ThumbnailsDirectory.Remove(_hostingEnvironment.WebRootPath).Replace('\\', '/').TrimStart('/')}/{Path.GetFileNameWithoutExtension(x.Title)}.webp",
MediaType = x.MediaType
})?.ToList(),
CurrentPage = currentPage,
ApprovedCount = (int)itemCounts["Approved"],
PendingCount = (int)itemCounts["Pending"],
ItemsPerPage = itemsPerPage,
FileUploader = fileUploader,
ViewMode = (ViewMode)ViewBag.ViewMode,
GroupBy = group,
OrderBy = order,
Pagination = order != GalleryOrder.Random,
LoadScripts = !partial
};
return partial ? PartialView("~/Views/Gallery/GalleryWrapper.cshtml", model) : View(model);
}
return new RedirectToActionResult("Index", "Error", new { Reason = ErrorCode.InvalidGalleryId }, false);
@@ -279,8 +312,7 @@ namespace WeddingShare.Controllers
try
{
string galleryId = (Request?.Form?.FirstOrDefault(x => string.Equals("Id", x.Key, StringComparison.OrdinalIgnoreCase)).Value)?.ToString()?.ToLower() ?? string.Empty;
if (string.IsNullOrWhiteSpace(galleryId))
if (!int.TryParse((Request?.Form?.FirstOrDefault(x => string.Equals("Id", x.Key, StringComparison.OrdinalIgnoreCase)).Value)?.ToString()?.ToLower() ?? string.Empty, out var galleryId))
{
return Json(new { success = false, uploaded = 0, errors = new List<string>() { _localizer["Invalid_Gallery_Id"].Value } });
}
@@ -288,19 +320,19 @@ namespace WeddingShare.Controllers
var gallery = await _database.GetGallery(galleryId);
if (gallery != null)
{
var secretKey = await _settings.GetOrDefault(Settings.Gallery.SecretKey, string.Empty, galleryId);
var secretKey = await _settings.GetOrDefault(Settings.Gallery.SecretKey, string.Empty, gallery.Id);
string key = (Request?.Form?.FirstOrDefault(x => string.Equals("SecretKey", x.Key, StringComparison.OrdinalIgnoreCase)).Value)?.ToString() ?? string.Empty;
if (!string.IsNullOrWhiteSpace(secretKey) && !string.Equals(secretKey, key))
{
return Json(new { success = false, uploaded = 0, errors = new List<string>() { _localizer["Invalid_Secret_Key_Warning"].Value } });
}
string uploadedBy = HttpContext.Session.GetString(SessionKey.ViewerIdentity) ?? "Anonymous";
string uploadedBy = HttpContext.Session.GetString(SessionKey.ViewerIdentity)?.Trim() ?? "Anonymous";
var files = Request?.Form?.Files;
if (files != null && files.Count > 0)
{
var requiresReview = await _settings.GetOrDefault(Settings.Gallery.RequireReview, true, galleryId);
var requiresReview = await _settings.GetOrDefault(Settings.Gallery.RequireReview, true, gallery.Id);
var uploaded = 0;
var errors = new List<string>();
@@ -309,11 +341,11 @@ namespace WeddingShare.Controllers
try
{
var extension = Path.GetExtension(file.FileName);
var maxGallerySize = await _settings.GetOrDefault(Settings.Gallery.MaxSizeMB, 1024L, galleryId) * 1000000;
var maxFilesSize = await _settings.GetOrDefault(Settings.Gallery.MaxFileSizeMB, 10L, galleryId) * 1000000;
var galleryPath = Path.Combine(UploadsDirectory, gallery.Name);
var maxGallerySize = await _settings.GetOrDefault(Settings.Gallery.MaxSizeMB, 1024L, gallery.Id) * 1000000;
var maxFilesSize = await _settings.GetOrDefault(Settings.Gallery.MaxFileSizeMB, 50L, gallery.Id) * 1000000;
var galleryPath = Path.Combine(UploadsDirectory, gallery.Identifier);
var allowedFileTypes = (await _settings.GetOrDefault(Settings.Gallery.AllowedFileTypes, ".jpg,.jpeg,.png,.mp4,.mov", galleryId)).Split(',', StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries);
var allowedFileTypes = (await _settings.GetOrDefault(Settings.Gallery.AllowedFileTypes, ".jpg,.jpeg,.png,.mp4,.mov", gallery.Id)).Split(',', StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries);
if (!allowedFileTypes.Any(x => string.Equals(x.Trim('.'), extension.Trim('.'), StringComparison.OrdinalIgnoreCase)))
{
errors.Add($"{_localizer["File_Upload_Failed"].Value}. {_localizer["Invalid_File_Type"].Value}");
@@ -328,7 +360,7 @@ namespace WeddingShare.Controllers
}
else
{
var fileName = $"{Guid.NewGuid()}{Path.GetExtension(file.FileName)}";
var fileName = _fileHelper.SanitizeFilename($"{(!string.IsNullOrWhiteSpace(uploadedBy) ? $"{uploadedBy.Replace(" ", "_")}-" : string.Empty)}{Guid.NewGuid()}{Path.GetExtension(file.FileName)}");
galleryPath = requiresReview ? Path.Combine(galleryPath, "Pending") : galleryPath;
_fileHelper.CreateDirectoryIfNotExists(galleryPath);
@@ -347,16 +379,19 @@ namespace WeddingShare.Controllers
}
var checksum = await _fileHelper.GetChecksum(filePath);
if (await _settings.GetOrDefault(Settings.Gallery.PreventDuplicates, true, galleryId) && (string.IsNullOrWhiteSpace(checksum) || await _database.GetGalleryItemByChecksum(gallery.Id, checksum) != null))
if (await _settings.GetOrDefault(Settings.Gallery.PreventDuplicates, true, gallery.Id) && (string.IsNullOrWhiteSpace(checksum) || await _database.GetGalleryItemByChecksum(gallery.Id, checksum) != null))
{
errors.Add($"{_localizer["File_Upload_Failed"].Value}. {_localizer["Duplicate_Item_Detected"].Value}");
_fileHelper.DeleteFileIfExists(filePath);
}
else
{
var savePath = Path.Combine(ThumbnailsDirectory, $"{Path.GetFileNameWithoutExtension(filePath)}.webp");
var gallerySavePath = Path.Combine(ThumbnailsDirectory, gallery.Identifier);
_fileHelper.CreateDirectoryIfNotExists(ThumbnailsDirectory);
_fileHelper.CreateDirectoryIfNotExists(gallerySavePath);
var savePath = Path.Combine(gallerySavePath, $"{Path.GetFileNameWithoutExtension(filePath)}.webp");
await _imageHelper.GenerateThumbnail(filePath, savePath, await _settings.GetOrDefault(Settings.Basic.ThumbnailSize, 720));
var item = await _database.AddGalleryItem(new GalleryItemModel()
@@ -415,8 +450,7 @@ namespace WeddingShare.Controllers
try
{
string galleryId = (Request?.Form?.FirstOrDefault(x => string.Equals("Id", x.Key, StringComparison.OrdinalIgnoreCase)).Value)?.ToString()?.ToLower() ?? string.Empty;
if (string.IsNullOrWhiteSpace(galleryId))
if (!int.TryParse((Request?.Form?.FirstOrDefault(x => string.Equals("Id", x.Key, StringComparison.OrdinalIgnoreCase)).Value)?.ToString()?.ToLower() ?? string.Empty, out var galleryId))
{
return Json(new { success = false, uploaded = 0, errors = new List<string>() { _localizer["Invalid_Gallery_Id"].Value } });
}
@@ -437,7 +471,7 @@ namespace WeddingShare.Controllers
int uploaded = int.Parse((Request?.Form?.FirstOrDefault(x => string.Equals("Count", x.Key, StringComparison.OrdinalIgnoreCase)).Value)?.ToString() ?? "0");
if (uploaded > 0 && requiresReview && await _settings.GetOrDefault(Notifications.Alerts.PendingReview, true))
{
await _notificationHelper.Send(_localizer["New_Items_Pending_Review"].Value, $"{uploaded} new item(s) have been uploaded to gallery '{gallery.Name}' by '{(!string.IsNullOrWhiteSpace(uploadedBy) ? uploadedBy : "Anonymous")}' and are awaiting your review.", _urlHelper.GenerateBaseUrl(HttpContext?.Request, "/Admin"));
await _notificationHelper.Send(_localizer["New_Items_Pending_Review"].Value, $"{uploaded} new item(s) have been uploaded to gallery '{gallery.Name}' by '{(!string.IsNullOrWhiteSpace(uploadedBy) ? uploadedBy : "Anonymous")}' and are awaiting your review.", _urlHelper.GenerateBaseUrl(HttpContext?.Request, "/Account"));
}
Response.StatusCode = (int)HttpStatusCode.OK;
@@ -465,14 +499,17 @@ namespace WeddingShare.Controllers
var gallery = await _database.GetGallery(id);
if (gallery != null)
{
if (secretKey != await _settings.GetOrDefault(Settings.Gallery.SecretKey, string.Empty, gallery.Name))
secretKey = secretKey ?? string.Empty;
var gallerySecret = await _settings.GetOrDefault(Settings.Gallery.SecretKey, string.Empty, gallery.Id);
if (!secretKey.Equals(gallerySecret))
{
return Json(new { success = false, message = _localizer["Failed_Download_Gallery"].Value });
return Json(new { success = false, message = _localizer["Failed_Download_Gallery_Invalid_Key"].Value });
}
if (await _settings.GetOrDefault(Settings.Gallery.Download, true, gallery?.Name) || (User?.Identity != null && User.Identity.IsAuthenticated))
if (await _settings.GetOrDefault(Settings.Gallery.Download, true, gallery?.Id) || (User?.Identity != null && User.Identity.IsAuthenticated))
{
var galleryDir = id > 0 ? Path.Combine(UploadsDirectory, gallery.Name) : UploadsDirectory;
var galleryDir = id > 0 ? Path.Combine(UploadsDirectory, gallery.Identifier) : UploadsDirectory;
if (_fileHelper.DirectoryExists(galleryDir))
{
var keepFiles = new List<string>();
@@ -532,7 +569,7 @@ namespace WeddingShare.Controllers
_fileHelper.CreateDirectoryIfNotExists(TempDirectory);
var tempZipFile = Path.Combine(TempDirectory, $"{gallery.Name}-{DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss")}.zip");
var tempZipFile = Path.Combine(TempDirectory, $"{gallery.Identifier}-{DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss")}.zip");
ZipFile.CreateFromDirectory(galleryDir, tempZipFile, CompressionLevel.Optimal, false);
if (User?.Identity == null || !User.Identity.IsAuthenticated)

View File

@@ -3,6 +3,7 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Localization;
using WeddingShare.Constants;
using WeddingShare.Extensions;
using WeddingShare.Helpers;
using WeddingShare.Helpers.Database;
using WeddingShare.Models;
@@ -15,14 +16,16 @@ namespace WeddingShare.Controllers
private readonly ISettingsHelper _settings;
private readonly IDatabaseHelper _database;
private readonly IDeviceDetector _deviceDetector;
private readonly IAuditHelper _audit;
private readonly ILogger _logger;
private readonly IStringLocalizer<Lang.Translations> _localizer;
public HomeController(ISettingsHelper settings, IDatabaseHelper database, IDeviceDetector deviceDetector, ILogger<HomeController> logger, IStringLocalizer<Lang.Translations> localizer)
public HomeController(ISettingsHelper settings, IDatabaseHelper database, IDeviceDetector deviceDetector, IAuditHelper audit, ILogger<HomeController> logger, IStringLocalizer<Lang.Translations> localizer)
{
_settings = settings;
_database = database;
_deviceDetector = deviceDetector;
_audit = audit;
_logger = logger;
_localizer = localizer;
}
@@ -44,14 +47,14 @@ namespace WeddingShare.Controllers
if (await _settings.GetOrDefault(Settings.Basic.SingleGalleryMode, false))
{
var key = await _settings.GetOrDefault(Settings.Gallery.SecretKey, string.Empty, "default");
var key = await _settings.GetOrDefault(Settings.Gallery.SecretKey, string.Empty, 1);
if (string.IsNullOrWhiteSpace(key))
{
return RedirectToAction("Index", "Gallery");
return RedirectToAction("Index", "Gallery", new { identifier = "default" });
}
}
model.GalleryNames = await _settings.GetOrDefault(Settings.GallerySelector.Dropdown, false) ? await _database.GetGalleryNames() : new List<string>() { "default" };
model.GalleryNames = await _settings.GetOrDefault(Settings.GallerySelector.Dropdown, false) ? (await _database.GetGalleryNames()).Where(x => !x.Equals("all", StringComparison.OrdinalIgnoreCase)) : new List<string>();
if (await _settings.GetOrDefault(Settings.GallerySelector.HideDefaultOption, false))
{
model.GalleryNames = model.GalleryNames.Where(x => !x.Equals("default", StringComparison.OrdinalIgnoreCase));
@@ -65,12 +68,28 @@ namespace WeddingShare.Controllers
return View(model);
}
[HttpGet]
[Route("CookiePolicy")]
[Route("Home/CookiePolicy")]
public async Task<IActionResult> CookiePolicy()
{
ViewBag.CompanyName = await _settings.GetOrDefault(Settings.Basic.Title, "WeddingShare");
ViewBag.SiteHostname = await _settings.GetOrDefault(Settings.Basic.BaseUrl, "www.wedding-share.org");
ViewBag.CustomPolicy = await _settings.GetOrDefault(Settings.Policies.CookiePolicy, string.Empty);
return View("~/Views/Home/CookiePolicy.cshtml");
}
[HttpPost]
public IActionResult SetIdentity(string name)
{
try
{
if (Regex.IsMatch(name, @"^[a-zA-Z-\s\-\']+$", RegexOptions.Compiled))
if (HtmlSanitizer.MayContainXss(name))
{
return Json(new { success = false, reason = 1 });
}
else
{
HttpContext.Session.SetString(SessionKey.ViewerIdentity, name);
@@ -84,5 +103,22 @@ namespace WeddingShare.Controllers
return Json(new { success = false });
}
[HttpPost]
public async Task<IActionResult> LogCookieApproval()
{
try
{
var ipAddress = Request.HttpContext.TryGetIpAddress();
return Json(new { success = await _audit.LogAction("Visitor", $"{_localizer["Audit_CookieConsentApproved"].Value}: {ipAddress}") });
}
catch (Exception ex)
{
_logger.LogError(ex, $"{_localizer["Cookie_Audit_Error"].Value}");
}
return Json(new { success = false });
}
}
}

View File

@@ -12,11 +12,13 @@ namespace WeddingShare.Controllers
{
private readonly ISettingsHelper _settings;
private readonly ILanguageHelper _languageHelper;
private readonly ILogger<LanguageController> _logger;
public LanguageController(ISettingsHelper settings, ILanguageHelper languageHelper)
public LanguageController(ISettingsHelper settings, ILanguageHelper languageHelper, ILogger<LanguageController> logger)
{
_settings = settings;
_languageHelper = languageHelper;
_logger = logger;
}
[HttpGet]
@@ -29,11 +31,10 @@ namespace WeddingShare.Controllers
var defaultLang = HttpContext.Session.GetString(SessionKey.SelectedLanguage);
if (string.IsNullOrWhiteSpace(defaultLang))
{
defaultLang = await _settings.GetOrDefault(Settings.Languages.Default, "en-GB");
defaultLang = await _languageHelper.GetOrFallbackCulture(string.Empty, await _settings.GetOrDefault(Settings.Languages.Default, "en-GB"));
}
options = (await _languageHelper.DetectSupportedCulturesAsync())
.Where(x => x.Name.Contains("-"))
.Select(x => new SupportedLanguage() { Key = x.Name, Value = $"{(x.EnglishName.Contains("(") ? x.EnglishName.Substring(0, x.EnglishName.IndexOf("(")) : x.EnglishName).Trim()} ({x.Name})", Selected = string.Equals(defaultLang, x.Name, StringComparison.OrdinalIgnoreCase) })
.OrderBy(x => x.Value.ToLower())
.ToList();
@@ -48,6 +49,8 @@ namespace WeddingShare.Controllers
{
try
{
culture = await _languageHelper.GetOrFallbackCulture(culture, await _settings.GetOrDefault(Settings.Languages.Default, "en-GB"));
HttpContext.Session.SetString(SessionKey.SelectedLanguage, culture);
Response.Cookies.Append(
CookieRequestCultureProvider.DefaultCookieName,
@@ -57,7 +60,19 @@ namespace WeddingShare.Controllers
return Json(new { success = true });
}
catch { }
catch (Exception ex)
{
_logger.LogWarning(ex, $"Failed to set display language to '{culture}' - {ex?.Message}");
culture = "en-GB";
HttpContext.Session.SetString(SessionKey.SelectedLanguage, culture);
Response.Cookies.Append(
CookieRequestCultureProvider.DefaultCookieName,
CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture)),
new CookieOptions { Expires = DateTimeOffset.UtcNow.AddYears(1) }
);
}
return Json(new { success = false });
}

View File

@@ -0,0 +1,45 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Localization;
using WeddingShare.Constants;
using WeddingShare.Helpers;
using WeddingShare.Models;
namespace WeddingShare.Controllers
{
[AllowAnonymous]
public class SponsorsController : Controller
{
private readonly ISettingsHelper _settings;
private readonly IHttpClientFactory _clientFactory;
private readonly ILogger _logger;
private readonly IStringLocalizer<Lang.Translations> _localizer;
public SponsorsController(ISettingsHelper settings, IHttpClientFactory clientFactory, ILogger<HomeController> logger, IStringLocalizer<Lang.Translations> localizer)
{
_settings = settings;
_clientFactory = clientFactory;
_logger = logger;
_localizer = localizer;
}
[HttpGet]
public async Task<IActionResult> Index()
{
var model = new Views.Sponsors.IndexModel();
try
{
var client = _clientFactory.CreateClient("SponsorsClient");
var endpoint = await _settings.GetOrDefault(Sponsors.Endpoint, "/sponsors.json");
model.SponsorsList = await client.GetFromJsonAsync<SponsorsList>(endpoint);
}
catch (Exception ex)
{
_logger.LogError(ex, $"{_localizer["Sponsors_Load_Error"].Value} - {ex?.Message}");
}
return PartialView(model);
}
}
}

View File

@@ -0,0 +1,47 @@
namespace WeddingShare.Enums
{
[Flags]
public enum AccessPermissions
{
None = 0,
Login = 1,
Review_View = 2,
Review_Approve = 4,
Review_Reject = 8,
Review_Delete = 16,
Gallery_View = 32,
Gallery_Create = 64,
Gallery_Update = 128,
Gallery_Delete = 256,
Gallery_Upload = 1073741824,
Gallery_Download = 512,
Gallery_Wipe = 1024,
User_View = 2048,
User_Create = 4096,
User_Update = 8192,
User_Delete = 16384,
User_Change_Password = 32768,
User_Reset_MFA = 65536,
User_Freeze = 131072,
CustomResource_View = 262144,
CustomResource_Create = 524288,
CustomResource_Update = 1048576,
CustomResource_Delete = 2097152,
Settings_View = 4194304,
Settings_Update = 8388608,
Settings_Gallery_Update = 16777216,
Audit_View = 33554432,
Data_View = 67108864,
Data_Import = 134217728,
Data_Export = 268435456,
Data_Wipe = 536870912
}
}

View File

@@ -0,0 +1,8 @@
namespace WeddingShare.Enums
{
public enum AccountState
{
Active = 0,
Frozen = 1
}
}

View File

@@ -0,0 +1,13 @@
namespace WeddingShare.Enums
{
public enum AccountTabs
{
Reviews,
Galleries,
Users,
Resources,
Settings,
Audit,
Data
}
}

View File

@@ -0,0 +1,11 @@
namespace WeddingShare.Enums
{
public enum UserLevel
{
Basic = 0,
Reviewer = 1,
Moderator = 2,
Admin = 3,
Owner = 4
}
}

View File

@@ -0,0 +1,50 @@
namespace WeddingShare.Extensions
{
public static class HttpContextExtensions
{
public static string TryGetIpAddress(this HttpContext ctx)
{
try
{
var ipAddress = TryGetHeaderValue(ctx, ["CF-Connecting-IP", "CF-Connecting-IPv6", "X-Forwarded-For", "HTTP_X_FORWARDED_FOR", "REMOTE_ADDR"]);
if (string.IsNullOrWhiteSpace(ipAddress) || ipAddress.Equals("Unknown", StringComparison.OrdinalIgnoreCase))
{
return ctx.Connection?.RemoteIpAddress?.ToString() ?? "Unknown";
}
return ipAddress;
}
catch
{
return "Unknown";
}
}
public static string TryGetCountry(this HttpContext ctx)
{
return ctx.TryGetHeaderValue(["CF-IPCountry"]);
}
public static string TryGetHeaderValue(this HttpContext ctx, string[] headers)
{
foreach (var header in headers)
{
try
{
string? val = ctx.Request.Headers[header];
if (!string.IsNullOrWhiteSpace(val))
{
var vals = val.Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
if (vals.Length != 0)
{
return vals[0];
}
}
}
catch { }
}
return "Unknown";
}
}
}

View File

@@ -0,0 +1,141 @@
using System.Security.Claims;
using System.Security.Principal;
using WeddingShare.Enums;
namespace WeddingShare.Extensions
{
public static class UserClaimsExtentions
{
public static int GetUserId(this IIdentity identity)
{
try
{
return int.Parse(((ClaimsIdentity)identity).Claims.FirstOrDefault(x => string.Equals(ClaimTypes.Sid, x.Type, StringComparison.OrdinalIgnoreCase))?.Value ?? "-1");
}
catch { }
return -1;
}
public static UserLevel GetUserLevel(this IIdentity identity)
{
try
{
var level = ((ClaimsIdentity)identity).Claims.FirstOrDefault(x => string.Equals(ClaimTypes.Role, x.Type, StringComparison.OrdinalIgnoreCase))?.Value;
foreach (UserLevel l in Enum.GetValues(typeof(UserLevel)))
{
if (l.ToString().Equals(level, StringComparison.OrdinalIgnoreCase))
{
return l;
}
}
}
catch { }
return UserLevel.Basic;
}
public static AccessPermissions GetUserPermissions(this IIdentity identity)
{
try
{
var level = identity.GetUserLevel();
switch (level)
{
case UserLevel.Basic:
return AccessPermissions.Login;
case UserLevel.Reviewer:
return
AccessPermissions.Login
| AccessPermissions.Review_View
| AccessPermissions.Review_Approve
| AccessPermissions.Review_Reject
| AccessPermissions.Review_Delete
| AccessPermissions.Gallery_View;
case UserLevel.Moderator:
return
AccessPermissions.Login
| AccessPermissions.Review_View
| AccessPermissions.Review_Approve
| AccessPermissions.Review_Reject
| AccessPermissions.Review_Delete
| AccessPermissions.Gallery_View
| AccessPermissions.Gallery_Update
| AccessPermissions.Gallery_Upload
| AccessPermissions.Gallery_Download
| AccessPermissions.User_View
| AccessPermissions.User_Reset_MFA
| AccessPermissions.User_Freeze
| AccessPermissions.CustomResource_View
| AccessPermissions.Audit_View;
case UserLevel.Admin:
return
AccessPermissions.Login
| AccessPermissions.Review_View
| AccessPermissions.Review_Approve
| AccessPermissions.Review_Reject
| AccessPermissions.Review_Delete
| AccessPermissions.Gallery_View
| AccessPermissions.Gallery_Create
| AccessPermissions.Gallery_Update
| AccessPermissions.Gallery_Delete
| AccessPermissions.Gallery_Upload
| AccessPermissions.Gallery_Download
| AccessPermissions.User_View
| AccessPermissions.User_Create
| AccessPermissions.User_Update
| AccessPermissions.User_Change_Password
| AccessPermissions.User_Reset_MFA
| AccessPermissions.User_Freeze
| AccessPermissions.CustomResource_View
| AccessPermissions.CustomResource_Create
| AccessPermissions.CustomResource_Update
| AccessPermissions.CustomResource_Delete
| AccessPermissions.Settings_View
| AccessPermissions.Settings_Update
| AccessPermissions.Settings_Gallery_Update
| AccessPermissions.Audit_View;
case UserLevel.Owner:
return
AccessPermissions.Login
| AccessPermissions.Review_View
| AccessPermissions.Review_Approve
| AccessPermissions.Review_Reject
| AccessPermissions.Review_Delete
| AccessPermissions.Gallery_View
| AccessPermissions.Gallery_Create
| AccessPermissions.Gallery_Update
| AccessPermissions.Gallery_Delete
| AccessPermissions.Gallery_Upload
| AccessPermissions.Gallery_Download
| AccessPermissions.Gallery_Wipe
| AccessPermissions.User_View
| AccessPermissions.User_Create
| AccessPermissions.User_Update
| AccessPermissions.User_Delete
| AccessPermissions.User_Change_Password
| AccessPermissions.User_Reset_MFA
| AccessPermissions.User_Freeze
| AccessPermissions.CustomResource_View
| AccessPermissions.CustomResource_Create
| AccessPermissions.CustomResource_Update
| AccessPermissions.CustomResource_Delete
| AccessPermissions.Settings_View
| AccessPermissions.Settings_Update
| AccessPermissions.Settings_Gallery_Update
| AccessPermissions.Audit_View
| AccessPermissions.Data_View
| AccessPermissions.Data_Import
| AccessPermissions.Data_Export
| AccessPermissions.Data_Wipe;
default:
return AccessPermissions.None;
}
}
catch { }
return AccessPermissions.None;
}
}
}

View File

@@ -0,0 +1,43 @@
using WeddingShare.Helpers.Database;
using WeddingShare.Models.Database;
namespace WeddingShare.Helpers
{
public interface IAuditHelper
{
Task<bool> LogAction(string? user, string? action);
}
public class AuditHelper : IAuditHelper
{
private readonly IDatabaseHelper _databaseHelper;
private readonly ILogger _logger;
public AuditHelper(IDatabaseHelper databaseHelper, ILogger<AuditHelper> logger)
{
_databaseHelper = databaseHelper;
_logger = logger;
}
public async Task<bool> LogAction(string? user, string? action)
{
if (!string.IsNullOrWhiteSpace(user) && !string.IsNullOrWhiteSpace(action))
{
try
{
return await _databaseHelper.AddAuditLog(new AuditLogModel()
{
Username = user,
Message = action
}) != null;
}
catch (Exception ex)
{
_logger.LogError($"Failed to log audit message '{action}' for user '{user}'", ex);
}
}
return false;
}
}
}

View File

@@ -8,10 +8,10 @@ namespace WeddingShare.Helpers.Database
Task<int> GetGalleryCount();
Task<IEnumerable<string>> GetGalleryNames();
Task<List<GalleryModel>> GetAllGalleries();
Task<int?> GetGalleryId(string name);
Task<int?> GetGalleryId(string identifier);
Task<int?> GetGalleryIdByName(string name);
Task<string?> GetGalleryName(int id);
Task<GalleryModel?> GetGallery(int id);
Task<GalleryModel?> GetGallery(string name);
Task<GalleryModel?> AddGallery(GalleryModel model);
Task<GalleryModel?> EditGallery(GalleryModel model);
Task<bool> WipeGallery(GalleryModel model);
@@ -27,7 +27,7 @@ namespace WeddingShare.Helpers.Database
Task<GalleryItemModel?> AddGalleryItem(GalleryItemModel model);
Task<GalleryItemModel?> EditGalleryItem(GalleryItemModel model);
Task<bool> DeleteGalleryItem(GalleryItemModel model);
Task<bool> InitAdminAccount(UserModel model);
Task<bool> InitOwnerAccount(UserModel model);
Task<bool> ValidateCredentials(string username, string password);
Task<List<UserModel>?> GetAllUsers();
Task<UserModel?> GetUser(int id);
@@ -43,18 +43,21 @@ namespace WeddingShare.Helpers.Database
Task<bool> ResetMultiFactorToDefault();
Task<bool> Import(string path);
Task<bool> Export(string path);
Task<IEnumerable<SettingModel>?> GetAllSettings(string? gallery = "");
Task<SettingModel?> GetSetting(string id, string? gallery = "");
Task<SettingModel?> GetGallerySpecificSetting(string id, string gallery);
Task<SettingModel?> AddSetting(SettingModel model, string? gallery = "");
Task<SettingModel?> EditSetting(SettingModel model, string? gallery = "");
Task<SettingModel?> SetSetting(SettingModel model, string? gallery = "");
Task<bool> DeleteSetting(SettingModel model, string? gallery = "");
Task<bool> DeleteAllSettings(string? gallery = "");
Task<IEnumerable<SettingModel>?> GetAllSettings(int? galleryId = null);
Task<SettingModel?> GetSetting(string id);
Task<SettingModel?> GetSetting(string id, int gallery);
Task<SettingModel?> GetGallerySpecificSetting(string id, int galleryId);
Task<SettingModel?> AddSetting(SettingModel model, int? galleryId = null);
Task<SettingModel?> EditSetting(SettingModel model, int? galleryId = null);
Task<SettingModel?> SetSetting(SettingModel model, int? galleryId = null);
Task<bool> DeleteSetting(SettingModel model, int? galleryId = null);
Task<bool> DeleteAllSettings(int? galleryId = null);
Task<CustomResourceModel?> GetCustomResource(int id);
Task<List<CustomResourceModel>> GetAllCustomResources();
Task<CustomResourceModel?> AddCustomResource(CustomResourceModel model);
Task<CustomResourceModel?> EditCustomResource(CustomResourceModel model);
Task<bool> DeleteCustomResource(CustomResourceModel model);
Task<IEnumerable<AuditLogModel>?> GetAuditLogs(string term = "", int limit = 100);
Task<AuditLogModel?> AddAuditLog(AuditLogModel model);
}
}

View File

@@ -18,6 +18,8 @@ namespace WeddingShare.Helpers.Database
_logger = logger;
_logger.LogInformation($"Using MySQL connection string: '{_connString}'");
this.TestConnection();
}
#region Setup
@@ -33,6 +35,28 @@ namespace WeddingShare.Helpers.Database
return conn;
}
private void TestConnection()
{
try
{
using (var conn = GetConnection().Result)
{
var cmd = CreateCommand($"SELECT 1", conn);
cmd.CommandType = CommandType.Text;
conn.Open();
cmd.ExecuteScalarAsync();
conn.Close();
}
}
catch (Exception ex)
{
var message = $"Failed to connect to the database instance. Please check your database is up and running and the connection string used is correct";
_logger.LogCritical(ex, message);
Environment.FailFast(message, ex);
}
}
private MySqlCommand CreateCommand(string cmd, MySqlConnection conn)
{
return new MySqlCommand(cmd, conn);
@@ -142,14 +166,46 @@ namespace WeddingShare.Helpers.Database
return result;
}
public async Task<int?> GetGalleryId(string? name)
public async Task<int?> GetGalleryIdByName(string? name)
{
int? result = null;
if (!string.IsNullOrWhiteSpace(name))
{
return (await this.GetGallery(name))?.Id;
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"SELECT g.`id` FROM `galleries` AS g WHERE UPPER(g.`name`)=UPPER(@Name);", conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("Name", name);
await conn.OpenAsync();
result = (int?)(long?)await cmd.ExecuteScalarAsync();
await conn.CloseAsync();
}
}
return null;
return result;
}
public async Task<int?> GetGalleryId(string identifier)
{
int? result = null;
if (!string.IsNullOrWhiteSpace(identifier))
{
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"SELECT g.`id` FROM `galleries` AS g WHERE UPPER(g.`identifier`)=UPPER(@Identifier);", conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("Identifier", identifier);
await conn.OpenAsync();
result = (int?)(long?)await cmd.ExecuteScalarAsync();
await conn.CloseAsync();
}
}
return result;
}
public async Task<string?> GetGalleryName(int id)
@@ -185,12 +241,14 @@ namespace WeddingShare.Helpers.Database
result = new GalleryModel()
{
Id = 0,
Identifier = "all",
Name = "all",
SecretKey = null,
TotalItems = galleries?.Sum(x => x.TotalItems) ?? 0,
ApprovedItems = galleries?.Sum(x => x.ApprovedItems) ?? 0,
PendingItems = galleries?.Sum(x => x.PendingItems) ?? 0,
TotalGallerySize = galleries?.Sum(x => x.TotalGallerySize) ?? 0
TotalGallerySize = galleries?.Sum(x => x.TotalGallerySize) ?? 0,
Owner = 1
};
}
}
@@ -200,49 +258,20 @@ namespace WeddingShare.Helpers.Database
return result;
}
public async Task<GalleryModel?> GetGallery(string name)
{
GalleryModel? result = null;
if (string.Equals("All", name, StringComparison.OrdinalIgnoreCase))
{
result = await GetGallery(0);
}
else
{
long? galleryId = 0;
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"SELECT `id` FROM `galleries` WHERE `name`=@Name;", conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("Name", name?.ToLower());
await conn.OpenAsync();
galleryId = (long?)await cmd.ExecuteScalarAsync();
await conn.CloseAsync();
}
if (galleryId != null && galleryId > 0)
{
result = await GetGallery((int)galleryId);
}
}
return result;
}
public async Task<GalleryModel?> AddGallery(GalleryModel model)
{
GalleryModel? result = null;
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"INSERT INTO `galleries` (`name`, `secret_key`) VALUES (@Name, @SecretKey); SELECT g.*, COUNT(gi.`id`) AS `total`, SUM(CASE WHEN gi.`state`=@ApprovedState THEN 1 ELSE 0 END) AS `approved`, SUM(CASE WHEN gi.`state`=@PendingState THEN 1 ELSE 0 END) AS `pending`, SUM(gi.file_size) AS `total_gallery_size` FROM `galleries` AS g LEFT JOIN `gallery_items` AS gi ON g.`id` = gi.`gallery_id` WHERE g.`id`=LAST_INSERT_ID();", conn);
var cmd = CreateCommand($"INSERT INTO `galleries` (`identifier`, `name`, `secret_key`, `owner`) VALUES (@Identifier, @Name, @SecretKey, @Owner); SELECT g.*, COUNT(gi.`id`) AS `total`, SUM(CASE WHEN gi.`state`=@ApprovedState THEN 1 ELSE 0 END) AS `approved`, SUM(CASE WHEN gi.`state`=@PendingState THEN 1 ELSE 0 END) AS `pending`, SUM(gi.file_size) AS `total_gallery_size` FROM `galleries` AS g LEFT JOIN `gallery_items` AS gi ON g.`id` = gi.`gallery_id` WHERE g.`id`=LAST_INSERT_ID();", conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("Identifier", model.Identifier);
cmd.Parameters.AddWithValue("Name", model.Name.ToLower());
cmd.Parameters.AddWithValue("SecretKey", !string.IsNullOrWhiteSpace(model.SecretKey) ? model.SecretKey : DBNull.Value);
cmd.Parameters.AddWithValue("ApprovedState", (int)GalleryItemState.Approved);
cmd.Parameters.AddWithValue("PendingState", (int)GalleryItemState.Pending);
cmd.Parameters.AddWithValue("Owner", model.Owner);
await conn.OpenAsync();
var tran = await CreateTransaction(conn);
@@ -270,7 +299,7 @@ namespace WeddingShare.Helpers.Database
{
Id = Settings.Gallery.SecretKey,
Value = model.SecretKey
}, result.Name);
}, result.Id);
}
return result;
@@ -282,13 +311,14 @@ namespace WeddingShare.Helpers.Database
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"UPDATE `galleries` SET `name`=@Name, `secret_key`=@SecretKey WHERE `id`=@Id; SELECT g.*, COUNT(gi.`id`) AS `total`, SUM(CASE WHEN gi.`state`=@ApprovedState THEN 1 ELSE 0 END) AS `approved`, SUM(CASE WHEN gi.`state`=@PendingState THEN 1 ELSE 0 END) AS `pending`, SUM(gi.file_size) AS `total_gallery_size` FROM `galleries` AS g LEFT JOIN `gallery_items` AS gi ON g.`id` = gi.`gallery_id` WHERE g.`id`=@Id;", conn);
var cmd = CreateCommand($"UPDATE `galleries` SET `name`=@Name, `secret_key`=@SecretKey, `owner`=@Owner WHERE `id`=@Id; SELECT g.*, COUNT(gi.`id`) AS `total`, SUM(CASE WHEN gi.`state`=@ApprovedState THEN 1 ELSE 0 END) AS `approved`, SUM(CASE WHEN gi.`state`=@PendingState THEN 1 ELSE 0 END) AS `pending`, SUM(gi.file_size) AS `total_gallery_size` FROM `galleries` AS g LEFT JOIN `gallery_items` AS gi ON g.`id` = gi.`gallery_id` WHERE g.`id`=@Id;", conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("Id", model.Id);
cmd.Parameters.AddWithValue("Name", model.Name?.ToLower());
cmd.Parameters.AddWithValue("SecretKey", !string.IsNullOrWhiteSpace(model.SecretKey) ? model.SecretKey : DBNull.Value);
cmd.Parameters.AddWithValue("ApprovedState", (int)GalleryItemState.Approved);
cmd.Parameters.AddWithValue("PendingState", (int)GalleryItemState.Pending);
cmd.Parameters.AddWithValue("Owner", model.Owner);
await conn.OpenAsync();
var tran = await CreateTransaction(conn);
@@ -732,17 +762,18 @@ namespace WeddingShare.Helpers.Database
#endregion
#region Users
public async Task<bool> InitAdminAccount(UserModel model)
public async Task<bool> InitOwnerAccount(UserModel model)
{
bool result = false;
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"UPDATE `users` SET `username`=@Username, `password`=@Password WHERE `id`=@Id;", conn);
var cmd = CreateCommand($"UPDATE `users` SET `username`=@Username, `password`=@Password, `level`=@Level WHERE `id`=@Id;", conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("Id", 1);
cmd.Parameters.AddWithValue("Username", model.Username.ToLower());
cmd.Parameters.AddWithValue("Password", model.Password);
cmd.Parameters.AddWithValue("Level", (int)UserLevel.Owner);
await conn.OpenAsync();
result = await cmd.ExecuteNonQueryAsync() > 0;
@@ -840,11 +871,13 @@ namespace WeddingShare.Helpers.Database
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"INSERT INTO `users` (`username`, `email`, `password`) VALUES (@Username, @Email, @Password); SELECT * FROM `users` WHERE `id`=LAST_INSERT_ID();", conn);
var cmd = CreateCommand($"INSERT INTO `users` (`username`, `email`, `password`, `state`, `level`) VALUES (@Username, @Email, @Password, @State, @Level); SELECT * FROM `users` WHERE `id`=LAST_INSERT_ID();", conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("Username", model.Username.ToLower());
cmd.Parameters.AddWithValue("Email", !string.IsNullOrEmpty(model.Email) ? model.Email : DBNull.Value);
cmd.Parameters.AddWithValue("Password", model.Password);
cmd.Parameters.AddWithValue("State", (int)AccountState.Active);
cmd.Parameters.AddWithValue("Level", (int)model.Level);
await conn.OpenAsync();
var tran = await CreateTransaction(conn);
@@ -875,11 +908,13 @@ namespace WeddingShare.Helpers.Database
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"UPDATE `users` SET `username`=@Username, `email`=@Email, `failed_logins`=@FailedLogins, `lockout_until`=@LockoutUntil WHERE `id`=@Id; SELECT * FROM `users` WHERE `id`=@Id;", conn);
var cmd = CreateCommand($"UPDATE `users` SET `username`=@Username, `email`=@Email, `state`=@State, `level`=@Level, `failed_logins`=@FailedLogins, `lockout_until`=@LockoutUntil WHERE `id`=@Id; SELECT * FROM `users` WHERE `id`=@Id;", conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("Id", model.Id);
cmd.Parameters.AddWithValue("Username", model.Username.ToLower());
cmd.Parameters.AddWithValue("Email", !string.IsNullOrEmpty(model.Email) ? model.Email : DBNull.Value);
cmd.Parameters.AddWithValue("State", (int)model.State);
cmd.Parameters.AddWithValue("Level", (int)model.Level);
cmd.Parameters.AddWithValue("FailedLogins", model.FailedLogins);
cmd.Parameters.AddWithValue("LockoutUntil", model.LockoutUntil != null ? ((DateTime)model.LockoutUntil - new DateTime(1970, 1, 1)).TotalSeconds : DBNull.Value);
@@ -910,7 +945,7 @@ namespace WeddingShare.Helpers.Database
{
bool result = false;
if (model.Id > 1 && !string.Equals("Admin", model.Username, StringComparison.OrdinalIgnoreCase))
if (model.Id > 1)
{
using (var conn = await GetConnection())
{
@@ -956,7 +991,7 @@ namespace WeddingShare.Helpers.Database
try
{
cmd.Transaction = tran;
result = (int)(await cmd.ExecuteScalarAsync() ?? 0) > 0;
result = (int)(await cmd.ExecuteNonQueryAsync()) > 0;
await tran.CommitAsync();
}
catch
@@ -1160,10 +1195,11 @@ namespace WeddingShare.Helpers.Database
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"INSERT INTO `custom_resources` (`file_name`, `uploaded_by`) VALUES (@FileName, @UploadedBy); SELECT * FROM `custom_resources` WHERE `id`=LAST_INSERT_ID();", conn);
var cmd = CreateCommand($"INSERT INTO `custom_resources` (`file_name`, `uploaded_by`, `owner`) VALUES (@FileName, @UploadedBy, @Owner); SELECT * FROM `custom_resources` WHERE `id`=LAST_INSERT_ID();", conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("FileName", model.FileName);
cmd.Parameters.AddWithValue("UploadedBy", !string.IsNullOrEmpty(model.UploadedBy) ? model.UploadedBy : DBNull.Value);
cmd.Parameters.AddWithValue("Owner", model.Owner);
await conn.OpenAsync();
var tran = await CreateTransaction(conn);
@@ -1194,11 +1230,12 @@ namespace WeddingShare.Helpers.Database
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"UPDATE `custom_resource` SET `file_name`=@FileName, `uploaded_by`=@UploadedBy WHERE `id`=@Id; SELECT * FROM `custom_resources` WHERE `id`=@Id;", conn);
var cmd = CreateCommand($"UPDATE `custom_resource` SET `file_name`=@FileName, `uploaded_by`=@UploadedBy, `owner`=@Owner WHERE `id`=@Id; SELECT * FROM `custom_resources` WHERE `id`=@Id;", conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("Id", model.Id);
cmd.Parameters.AddWithValue("FileName", model.FileName);
cmd.Parameters.AddWithValue("UploadedBy", !string.IsNullOrEmpty(model.UploadedBy) ? model.UploadedBy : DBNull.Value);
cmd.Parameters.AddWithValue("Owner", model.Owner);
await conn.OpenAsync();
var tran = await CreateTransaction(conn);
@@ -1257,7 +1294,7 @@ namespace WeddingShare.Helpers.Database
#endregion
#region Settings
public async Task<IEnumerable<SettingModel>?> GetAllSettings(string? gallery = "")
public async Task<IEnumerable<SettingModel>?> GetAllSettings(int? galleryId = null)
{
List<SettingModel> result = new List<SettingModel>();
@@ -1274,24 +1311,20 @@ namespace WeddingShare.Helpers.Database
result = await ReadSettings(reader);
}
if (result != null && !string.IsNullOrWhiteSpace(gallery))
if (result != null && galleryId != null)
{
var galleryId = await this.GetGalleryId(gallery);
if (galleryId != null)
{
// Get Gallery Overrides
cmd = CreateCommand($"SELECT `id`, `value` FROM `gallery_settings` WHERE `gallery_id`=@GalleryId;", conn);
cmd.Parameters.AddWithValue("GalleryId", (int)galleryId);
cmd.CommandType = CommandType.Text;
// Get Gallery Overrides
cmd = CreateCommand($"SELECT `id`, `value` FROM `gallery_settings` WHERE `gallery_id`=@GalleryId;", conn);
cmd.Parameters.AddWithValue("GalleryId", (int)galleryId);
cmd.CommandType = CommandType.Text;
using (var reader = await cmd.ExecuteReaderAsync())
using (var reader = await cmd.ExecuteReaderAsync())
{
var overrides = (await ReadSettings(reader))?.Where(x => !string.IsNullOrWhiteSpace(x.Value));
if (overrides != null && overrides.Any())
{
var overrides = (await ReadSettings(reader))?.Where(x => !string.IsNullOrWhiteSpace(x.Value));
if (overrides != null && overrides.Any())
{
result = result.Where(x => !overrides.Any(o => o.Id.Equals(x.Id, StringComparison.OrdinalIgnoreCase))).ToList();
result.AddRange(overrides);
}
result = result.Where(x => !overrides.Any(o => o.Id.Equals(x.Id, StringComparison.OrdinalIgnoreCase))).ToList();
result.AddRange(overrides);
}
}
}
@@ -1302,17 +1335,26 @@ namespace WeddingShare.Helpers.Database
return result;
}
public async Task<SettingModel?> GetSetting(string id, string? gallery = "")
public async Task<SettingModel?> GetSetting(string id)
{
return await GetSetting(id, 0);
}
public async Task<SettingModel?> GetSetting(string id, string gallery)
{
return await GetSetting(id, await this.GetGalleryIdByName(gallery) ?? 0);
}
public async Task<SettingModel?> GetSetting(string id, int galleryId)
{
SettingModel? result;
var galleryId = await this.GetGalleryId(gallery);
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"SELECT `id`, `value` FROM (SELECT `id`, `value`, '2' AS `priority` FROM `settings` WHERE `id`=@Id UNION SELECT `id`, `value`, '1' AS `priority` FROM `gallery_settings` WHERE `id`=@Id AND `gallery_id`=@GalleryId) ORDER BY `priority` ASC LIMIT 1;", conn);
var cmd = CreateCommand($"SELECT `id`, `value` FROM (SELECT `id`, `value`, '2' AS `priority` FROM `settings` WHERE `id`=@Id UNION SELECT `id`, `value`, '1' AS `priority` FROM `gallery_settings` WHERE `id`=@Id AND `gallery_id`=@GalleryId) AS sq1 ORDER BY `priority` ASC LIMIT 1;", conn);
cmd.Parameters.AddWithValue("Id", id.ToUpper());
cmd.Parameters.AddWithValue("GalleryId", galleryId ?? 0);
cmd.Parameters.AddWithValue("GalleryId", galleryId);
cmd.CommandType = CommandType.Text;
await conn.OpenAsync();
@@ -1326,42 +1368,37 @@ namespace WeddingShare.Helpers.Database
return result;
}
public async Task<SettingModel?> GetGallerySpecificSetting(string id, string gallery)
public async Task<SettingModel?> GetGallerySpecificSetting(string id, int galleryId)
{
SettingModel? result = null;
var galleryId = await this.GetGalleryId(gallery);
if (galleryId != null)
using (var conn = await GetConnection())
{
using (var conn = await GetConnection())
var cmd = CreateCommand($"SELECT `id`, `value` FROM `gallery_settings` WHERE `id`=@Id AND `gallery_id`=@GalleryId;", conn);
cmd.Parameters.AddWithValue("Id", id.ToUpper());
cmd.Parameters.AddWithValue("GalleryId", galleryId);
cmd.CommandType = CommandType.Text;
await conn.OpenAsync();
using (var reader = await cmd.ExecuteReaderAsync())
{
var cmd = CreateCommand($"SELECT `id`, `value` FROM `gallery_settings` WHERE `id`=@Id AND `gallery_id`=@GalleryId;", conn);
cmd.Parameters.AddWithValue("Id", id.ToUpper());
cmd.Parameters.AddWithValue("GalleryId", galleryId);
cmd.CommandType = CommandType.Text;
await conn.OpenAsync();
using (var reader = await cmd.ExecuteReaderAsync())
{
result = (await ReadSettings(reader))?.FirstOrDefault();
}
await conn.CloseAsync();
result = (await ReadSettings(reader))?.FirstOrDefault();
}
await conn.CloseAsync();
}
return result;
}
public async Task<SettingModel?> AddSetting(SettingModel model, string? gallery = "")
public async Task<SettingModel?> AddSetting(SettingModel model, int? galleryId = null)
{
SettingModel? result = null;
var galleryId = await this.GetGalleryId(gallery);
using (var conn = await GetConnection())
{
MySqlCommand cmd;
if (!string.IsNullOrWhiteSpace(gallery))
if (galleryId != null)
{
cmd = CreateCommand($"INSERT INTO `gallery_settings` (`id`, `gallery_id`, `value`) VALUES (@Id, @GalleryId, @Value); SELECT * FROM `gallery_settings` WHERE `id`=LAST_INSERT_ID() AND `gallery_id`=@GalleryId;", conn);
cmd.Parameters.AddWithValue("GalleryId", galleryId);
@@ -1398,15 +1435,14 @@ namespace WeddingShare.Helpers.Database
return result;
}
public async Task<SettingModel?> EditSetting(SettingModel model, string? gallery = "")
public async Task<SettingModel?> EditSetting(SettingModel model, int? galleryId = null)
{
SettingModel? result = null;
var galleryId = await this.GetGalleryId(gallery);
using (var conn = await GetConnection())
{
MySqlCommand cmd;
if (!string.IsNullOrWhiteSpace(gallery))
if (galleryId != null)
{
cmd = CreateCommand($"UPDATE `gallery_settings` SET `value`=@Value WHERE `id`=@Id AND `gallery_id`=@GalleryId; SELECT * FROM `gallery_settings` WHERE `id`=@Id AND `gallery_id`=@GalleryId;", conn);
cmd.Parameters.AddWithValue("GalleryId", galleryId);
@@ -1443,23 +1479,23 @@ namespace WeddingShare.Helpers.Database
return result;
}
public async Task<SettingModel?> SetSetting(SettingModel model, string? gallery = "")
public async Task<SettingModel?> SetSetting(SettingModel model, int? galleryId = null)
{
if (!string.IsNullOrWhiteSpace(model.Id))
{
try
{
if (!string.IsNullOrWhiteSpace(gallery))
if (galleryId != null)
{
// Gallery Override
var result = await GetGallerySpecificSetting(model.Id, gallery);
var result = await GetGallerySpecificSetting(model.Id, galleryId.Value);
if (result == null && !string.IsNullOrEmpty(model.Value))
{
return await AddSetting(new SettingModel()
{
Id = model.Id.ToUpper(),
Value = model.Value
}, gallery);
}, galleryId);
}
else if (result != null && !string.IsNullOrEmpty(model.Value))
{
@@ -1467,7 +1503,7 @@ namespace WeddingShare.Helpers.Database
{
Id = model.Id.ToUpper(),
Value = model.Value
}, gallery);
}, galleryId);
}
else if (result != null && string.IsNullOrEmpty(model.Value))
{
@@ -1475,7 +1511,7 @@ namespace WeddingShare.Helpers.Database
{
Id = model.Id.ToUpper(),
Value = model.Value
}, gallery);
}, galleryId);
}
}
else
@@ -1518,15 +1554,14 @@ namespace WeddingShare.Helpers.Database
};
}
public async Task<bool> DeleteSetting(SettingModel model, string? gallery = "")
public async Task<bool> DeleteSetting(SettingModel model, int? galleryId = null)
{
bool result = false;
var galleryId = await this.GetGalleryId(gallery);
using (var conn = await GetConnection())
{
MySqlCommand cmd;
if (!string.IsNullOrWhiteSpace(gallery))
if (galleryId != null)
{
cmd = CreateCommand($"DELETE FROM `gallery_settings` WHERE `id`=@Id AND `gallery_id`=@GalleryId;", conn);
cmd.Parameters.AddWithValue("GalleryId", galleryId);
@@ -1559,15 +1594,14 @@ namespace WeddingShare.Helpers.Database
return result;
}
public async Task<bool> DeleteAllSettings(string? gallery = "")
public async Task<bool> DeleteAllSettings(int? galleryId = null)
{
bool result = false;
var galleryId = await this.GetGalleryId(gallery);
using (var conn = await GetConnection())
{
MySqlCommand cmd;
if (!string.IsNullOrWhiteSpace(gallery))
if (galleryId != null)
{
cmd = CreateCommand($"DELETE FROM `gallery_settings` WHERE `gallery_id`=@GalleryId;", conn);
cmd.Parameters.AddWithValue("GalleryId", galleryId);
@@ -1600,6 +1634,66 @@ namespace WeddingShare.Helpers.Database
}
#endregion
#region Audit Logs
public async Task<IEnumerable<AuditLogModel>?> GetAuditLogs(string term = "", int limit = 100)
{
List<AuditLogModel> result = new List<AuditLogModel>();
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"SELECT * FROM `audit_logs` WHERE `username` LIKE @Term OR `message` LIKE @Term ORDER BY `id` DESC LIMIT @Limit;", conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("Term", $"%{term?.Trim()}%");
cmd.Parameters.AddWithValue("Limit", limit);
await conn.OpenAsync();
using (var reader = await cmd.ExecuteReaderAsync())
{
result = await ReadAuditLogs(reader);
}
await conn.CloseAsync();
}
return result;
}
public async Task<AuditLogModel?> AddAuditLog(AuditLogModel model)
{
AuditLogModel? result = null;
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"INSERT INTO `audit_logs` (`message`, `username`, `timestamp`) VALUES (@Message, @Username, @Timestamp); SELECT * FROM `audit_logs` WHERE `id`=LAST_INSERT_ID();", conn);
cmd.Parameters.AddWithValue("Message", model.Message);
cmd.Parameters.AddWithValue("Username", model.Username?.ToLower());
cmd.Parameters.AddWithValue("Timestamp", DateTime.UtcNow);
cmd.CommandType = CommandType.Text;
await conn.OpenAsync();
var tran = await CreateTransaction(conn);
try
{
cmd.Transaction = tran;
using (var reader = await cmd.ExecuteReaderAsync())
{
result = (await ReadAuditLogs(reader))?.FirstOrDefault();
}
await tran.CommitAsync();
}
catch
{
await tran.RollbackAsync();
}
await conn.CloseAsync();
}
return result;
}
#endregion
#region Backups
public async Task<bool> Import(string path)
{
@@ -1623,20 +1717,18 @@ namespace WeddingShare.Helpers.Database
{
try
{
var id = !await reader.IsDBNullAsync("id") ? reader.GetInt32("id") : 0;
if (id > 0)
items.Add(new GalleryModel()
{
items.Add(new GalleryModel()
{
Id = id,
Name = !await reader.IsDBNullAsync("name") ? reader.GetString("name") : "Unknown",
SecretKey = !await reader.IsDBNullAsync("secret_key") ? reader.GetString("secret_key") : null,
TotalItems = !await reader.IsDBNullAsync("total") ? reader.GetInt32("total") : 0,
ApprovedItems = !await reader.IsDBNullAsync("approved") ? reader.GetInt32("approved") : 0,
PendingItems = !await reader.IsDBNullAsync("pending") ? reader.GetInt32("pending") : 0,
TotalGallerySize = !await reader.IsDBNullAsync("total_gallery_size") ? reader.GetInt64("total_gallery_size") : 0
});
}
Id = !await reader.IsDBNullAsync("id") ? reader.GetInt32("id") : 0,
Identifier = !await reader.IsDBNullAsync("identifier") ? reader.GetString("identifier") : GalleryHelper.GenerateGalleryIdentifier(),
Name = !await reader.IsDBNullAsync("name") ? reader.GetString("name") : "Unknown",
SecretKey = !await reader.IsDBNullAsync("secret_key") ? reader.GetString("secret_key") : null,
TotalItems = !await reader.IsDBNullAsync("total") ? reader.GetInt32("total") : 0,
ApprovedItems = !await reader.IsDBNullAsync("approved") ? reader.GetInt32("approved") : 0,
PendingItems = !await reader.IsDBNullAsync("pending") ? reader.GetInt32("pending") : 0,
TotalGallerySize = !await reader.IsDBNullAsync("total_gallery_size") ? reader.GetInt64("total_gallery_size") : 0,
Owner = !await reader.IsDBNullAsync("owner") ? reader.GetInt32("owner") : 0
});
}
catch (Exception ex)
{
@@ -1665,7 +1757,6 @@ namespace WeddingShare.Helpers.Database
{
Id = id,
GalleryId = !await reader.IsDBNullAsync("gallery_id") ? reader.GetInt32("gallery_id") : 0,
GalleryName = !await reader.IsDBNullAsync("gallery_name") ? reader.GetString("gallery_name") : string.Empty,
Title = !await reader.IsDBNullAsync("title") ? reader.GetString("title") : string.Empty,
UploadedBy = !await reader.IsDBNullAsync("uploaded_by") ? reader.GetString("uploaded_by") : null,
UploadedDate = !await reader.IsDBNullAsync("uploaded_date") ? reader.GetDateTime("uploaded_date") : null,
@@ -1705,7 +1796,6 @@ namespace WeddingShare.Helpers.Database
{
Id = id,
GalleryId = !await reader.IsDBNullAsync("gallery_id") ? reader.GetInt32("gallery_id") : 0,
GalleryName = !await reader.IsDBNullAsync("gallery_name") ? reader.GetString("gallery_name") : "default",
Title = !await reader.IsDBNullAsync("title") ? reader.GetString("title") : string.Empty,
UploadedBy = !await reader.IsDBNullAsync("uploaded_by") ? reader.GetString("uploaded_by") : null,
Checksum = !await reader.IsDBNullAsync("checksum") ? reader.GetString("checksum") : null,
@@ -1744,6 +1834,8 @@ namespace WeddingShare.Helpers.Database
Id = id,
Username = !await reader.IsDBNullAsync("failed_logins") ? reader.GetString("username").ToLower() : string.Empty,
Email = !await reader.IsDBNullAsync("email") ? reader.GetString("email") : null,
State = !await reader.IsDBNullAsync("state") ? (AccountState)reader.GetInt32("state") : AccountState.Active,
Level = !await reader.IsDBNullAsync("level") ? (UserLevel)reader.GetInt32("level") : UserLevel.Basic,
Password = null,
FailedLogins = !await reader.IsDBNullAsync("failed_logins") ? reader.GetInt32("failed_logins") : 0,
LockoutUntil = !await reader.IsDBNullAsync("lockout_until") ? DateTime.UnixEpoch.AddSeconds(reader.GetInt32("lockout_until")) : null,
@@ -1778,7 +1870,8 @@ namespace WeddingShare.Helpers.Database
{
Id = id,
FileName = !await reader.IsDBNullAsync("file_name") ? reader.GetString("file_name") : string.Empty,
UploadedBy = !await reader.IsDBNullAsync("uploaded_by") ? reader.GetString("uploaded_by") : null
UploadedBy = !await reader.IsDBNullAsync("uploaded_by") ? reader.GetString("uploaded_by") : null,
Owner = !await reader.IsDBNullAsync("owner") ? reader.GetInt32("owner") : 0
});
}
}
@@ -1821,6 +1914,38 @@ namespace WeddingShare.Helpers.Database
return items;
}
private async Task<List<AuditLogModel>> ReadAuditLogs(DbDataReader? reader)
{
var items = new List<AuditLogModel>();
if (reader != null && reader.HasRows)
{
while (reader.Read())
{
try
{
var id = !await reader.IsDBNullAsync("id") ? reader.GetInt32("id") : 0;
if (id > 0)
{
items.Add(new AuditLogModel()
{
Id = id,
Message = !await reader.IsDBNullAsync("message") ? reader.GetString("message") : string.Empty,
Username = !await reader.IsDBNullAsync("username") ? reader.GetString("username") : string.Empty,
Timestamp = !await reader.IsDBNullAsync("timestamp") ? reader.GetDateTime("timestamp") : default(DateTime)
});
}
}
catch (Exception ex)
{
_logger.LogWarning(ex, $"Failed to parse audit log model from database - {ex?.Message}");
}
}
}
return items;
}
#endregion
}
}

View File

@@ -124,14 +124,46 @@ namespace WeddingShare.Helpers.Database
return result;
}
public async Task<int?> GetGalleryId(string? name)
public async Task<int?> GetGalleryIdByName(string? name)
{
int? result = null;
if (!string.IsNullOrWhiteSpace(name))
{
return (await this.GetGallery(name))?.Id;
{
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"SELECT g.`id` FROM `galleries` AS g WHERE UPPER(g.`name`)=UPPER(@Name);", conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("Name", name);
await conn.OpenAsync();
result = (int?)(long?)await cmd.ExecuteScalarAsync();
await conn.CloseAsync();
}
}
return null;
return result;
}
public async Task<int?> GetGalleryId(string identifier)
{
int? result = null;
if (!string.IsNullOrWhiteSpace(identifier))
{
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"SELECT g.`id` FROM `galleries` AS g WHERE UPPER(g.`identifier`)=UPPER(@Identifier);", conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("Identifier", identifier);
await conn.OpenAsync();
result = (int?)(long?)await cmd.ExecuteScalarAsync();
await conn.CloseAsync();
}
}
return result;
}
public async Task<string?> GetGalleryName(int id)
@@ -167,12 +199,14 @@ namespace WeddingShare.Helpers.Database
result = new GalleryModel()
{
Id = 0,
Identifier = "all",
Name = "all",
SecretKey = null,
TotalItems = galleries?.Sum(x => x.TotalItems) ?? 0,
ApprovedItems = galleries?.Sum(x => x.ApprovedItems) ?? 0,
PendingItems = galleries?.Sum(x => x.PendingItems) ?? 0,
TotalGallerySize = galleries?.Sum(x => x.TotalGallerySize) ?? 0
TotalGallerySize = galleries?.Sum(x => x.TotalGallerySize) ?? 0,
Owner = 1
};
}
}
@@ -182,49 +216,26 @@ namespace WeddingShare.Helpers.Database
return result;
}
public async Task<GalleryModel?> GetGallery(string name)
{
GalleryModel? result = null;
if (string.Equals("All", name, StringComparison.OrdinalIgnoreCase))
{
result = await GetGallery(0);
}
else
{
long? galleryId = 0;
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"SELECT `id` FROM `galleries` WHERE `name`=@Name;", conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("Name", name?.ToLower());
await conn.OpenAsync();
galleryId = (long?)await cmd.ExecuteScalarAsync();
await conn.CloseAsync();
}
if (galleryId != null && galleryId > 0)
{
result = await GetGallery((int)galleryId);
}
}
return result;
}
public async Task<GalleryModel?> AddGallery(GalleryModel model)
{
GalleryModel? result = null;
if (ProtectedValues.GalleryNames.Any(x => x.Equals(model.Name?.Trim(), StringComparison.OrdinalIgnoreCase)))
{
// Prevent users from creating galleries with the same name as a protected gallery
return null;
}
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"INSERT INTO `galleries` (`name`, `secret_key`) VALUES (@Name, @SecretKey); SELECT g.*, COUNT(gi.`id`) AS `total`, SUM(CASE WHEN gi.`state`=@ApprovedState THEN 1 ELSE 0 END) AS `approved`, SUM(CASE WHEN gi.`state`=@PendingState THEN 1 ELSE 0 END) AS `pending`, SUM(gi.file_size) AS `total_gallery_size` FROM `galleries` AS g LEFT JOIN `gallery_items` AS gi ON g.`id` = gi.`gallery_id` WHERE g.`id`=last_insert_rowid();", conn);
var cmd = CreateCommand($"INSERT INTO `galleries` (`identifier`, `name`, `secret_key`, `owner`) VALUES (@Identifier, @Name, @SecretKey, @Owner); SELECT g.*, COUNT(gi.`id`) AS `total`, SUM(CASE WHEN gi.`state`=@ApprovedState THEN 1 ELSE 0 END) AS `approved`, SUM(CASE WHEN gi.`state`=@PendingState THEN 1 ELSE 0 END) AS `pending`, SUM(gi.file_size) AS `total_gallery_size` FROM `galleries` AS g LEFT JOIN `gallery_items` AS gi ON g.`id` = gi.`gallery_id` WHERE g.`id`=last_insert_rowid();", conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("Identifier", model.Identifier);
cmd.Parameters.AddWithValue("Name", model.Name.ToLower());
cmd.Parameters.AddWithValue("SecretKey", !string.IsNullOrWhiteSpace(model.SecretKey) ? model.SecretKey : DBNull.Value);
cmd.Parameters.AddWithValue("ApprovedState", (int)GalleryItemState.Approved);
cmd.Parameters.AddWithValue("PendingState", (int)GalleryItemState.Pending);
cmd.Parameters.AddWithValue("Owner", model.Owner);
await conn.OpenAsync();
var tran = await CreateTransaction(conn);
@@ -252,7 +263,7 @@ namespace WeddingShare.Helpers.Database
{
Id = Settings.Gallery.SecretKey,
Value = model.SecretKey
}, result.Name);
}, result.Id);
}
return result;
@@ -264,13 +275,14 @@ namespace WeddingShare.Helpers.Database
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"UPDATE `galleries` SET `name`=@Name, `secret_key`=@SecretKey WHERE `id`=@Id; SELECT g.*, COUNT(gi.`id`) AS `total`, SUM(CASE WHEN gi.`state`=@ApprovedState THEN 1 ELSE 0 END) AS `approved`, SUM(CASE WHEN gi.`state`=@PendingState THEN 1 ELSE 0 END) AS `pending`, SUM(gi.file_size) AS `total_gallery_size` FROM `galleries` AS g LEFT JOIN `gallery_items` AS gi ON g.`id` = gi.`gallery_id` WHERE g.`id`=@Id;", conn);
var cmd = CreateCommand($"UPDATE `galleries` SET `name`=@Name, `secret_key`=@SecretKey, `owner`=@Owner WHERE `id`=@Id; SELECT g.*, COUNT(gi.`id`) AS `total`, SUM(CASE WHEN gi.`state`=@ApprovedState THEN 1 ELSE 0 END) AS `approved`, SUM(CASE WHEN gi.`state`=@PendingState THEN 1 ELSE 0 END) AS `pending`, SUM(gi.file_size) AS `total_gallery_size` FROM `galleries` AS g LEFT JOIN `gallery_items` AS gi ON g.`id` = gi.`gallery_id` WHERE g.`id`=@Id;", conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("Id", model.Id);
cmd.Parameters.AddWithValue("Name", model.Name?.ToLower());
cmd.Parameters.AddWithValue("SecretKey", !string.IsNullOrWhiteSpace(model.SecretKey) ? model.SecretKey : DBNull.Value);
cmd.Parameters.AddWithValue("ApprovedState", (int)GalleryItemState.Approved);
cmd.Parameters.AddWithValue("PendingState", (int)GalleryItemState.Pending);
cmd.Parameters.AddWithValue("Owner", model.Owner);
await conn.OpenAsync();
var tran = await CreateTransaction(conn);
@@ -714,17 +726,18 @@ namespace WeddingShare.Helpers.Database
#endregion
#region Users
public async Task<bool> InitAdminAccount(UserModel model)
public async Task<bool> InitOwnerAccount(UserModel model)
{
bool result = false;
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"UPDATE `users` SET `username`=@Username, `password`=@Password WHERE `id`=@Id;", conn);
var cmd = CreateCommand($"UPDATE `users` SET `username`=@Username, `password`=@Password, `level`=@Level WHERE `id`=@Id;", conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("Id", 1);
cmd.Parameters.AddWithValue("Username", model.Username.ToLower());
cmd.Parameters.AddWithValue("Password", model.Password);
cmd.Parameters.AddWithValue("Level", (int)UserLevel.Owner);
await conn.OpenAsync();
result = await cmd.ExecuteNonQueryAsync() > 0;
@@ -822,11 +835,13 @@ namespace WeddingShare.Helpers.Database
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"INSERT INTO `users` (`username`, `email`, `password`) VALUES (@Username, @Email, @Password); SELECT * FROM `users` WHERE `id`=last_insert_rowid();", conn);
var cmd = CreateCommand($"INSERT INTO `users` (`username`, `email`, `password`, `state`, `level`) VALUES (@Username, @Email, @Password, @State, @Level); SELECT * FROM `users` WHERE `id`=last_insert_rowid();", conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("Username", model.Username.ToLower());
cmd.Parameters.AddWithValue("Email", !string.IsNullOrEmpty(model.Email) ? model.Email : DBNull.Value);
cmd.Parameters.AddWithValue("State", AccountState.Active);
cmd.Parameters.AddWithValue("Password", model.Password);
cmd.Parameters.AddWithValue("Level", model.Level);
await conn.OpenAsync();
var tran = await CreateTransaction(conn);
@@ -857,11 +872,13 @@ namespace WeddingShare.Helpers.Database
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"UPDATE `users` SET `username`=@Username, `email`=@Email, `failed_logins`=@FailedLogins, `lockout_until`=@LockoutUntil WHERE `id`=@Id; SELECT * FROM `users` WHERE `id`=@Id;", conn);
var cmd = CreateCommand($"UPDATE `users` SET `username`=@Username, `email`=@Email, `state`=@State, `level`=@Level, `failed_logins`=@FailedLogins, `lockout_until`=@LockoutUntil WHERE `id`=@Id; SELECT * FROM `users` WHERE `id`=@Id;", conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("Id", model.Id);
cmd.Parameters.AddWithValue("Username", model.Username.ToLower());
cmd.Parameters.AddWithValue("Email", !string.IsNullOrEmpty(model.Email) ? model.Email : DBNull.Value);
cmd.Parameters.AddWithValue("State", (int)model.State);
cmd.Parameters.AddWithValue("Level", (int)model.Level);
cmd.Parameters.AddWithValue("FailedLogins", model.FailedLogins);
cmd.Parameters.AddWithValue("LockoutUntil", model.LockoutUntil != null ? ((DateTime)model.LockoutUntil - new DateTime(1970, 1, 1)).TotalSeconds : DBNull.Value);
@@ -892,7 +909,7 @@ namespace WeddingShare.Helpers.Database
{
bool result = false;
if (model.Id > 1 && !string.Equals("Admin", model.Username, StringComparison.OrdinalIgnoreCase))
if (model.Id > 1)
{
using (var conn = await GetConnection())
{
@@ -938,7 +955,7 @@ namespace WeddingShare.Helpers.Database
try
{
cmd.Transaction = tran;
result = (int)(await cmd.ExecuteScalarAsync() ?? 0) > 0;
result = (int)(await cmd.ExecuteNonQueryAsync()) > 0;
await tran.CommitAsync();
}
catch
@@ -1142,10 +1159,11 @@ namespace WeddingShare.Helpers.Database
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"INSERT INTO `custom_resources` (`file_name`, `uploaded_by`) VALUES (@FileName, @UploadedBy); SELECT * FROM `custom_resources` WHERE `id`=last_insert_rowid();", conn);
var cmd = CreateCommand($"INSERT INTO `custom_resources` (`file_name`, `uploaded_by`, `owner`) VALUES (@FileName, @UploadedBy, @Owner); SELECT * FROM `custom_resources` WHERE `id`=last_insert_rowid();", conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("FileName", model.FileName);
cmd.Parameters.AddWithValue("UploadedBy", !string.IsNullOrEmpty(model.UploadedBy) ? model.UploadedBy : DBNull.Value);
cmd.Parameters.AddWithValue("Owner", model.Owner);
await conn.OpenAsync();
var tran = await CreateTransaction(conn);
@@ -1176,11 +1194,12 @@ namespace WeddingShare.Helpers.Database
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"UPDATE `custom_resource` SET `file_name`=@FileName, `uploaded_by`=@UploadedBy WHERE `id`=@Id; SELECT * FROM `custom_resources` WHERE `id`=@Id;", conn);
var cmd = CreateCommand($"UPDATE `custom_resource` SET `file_name`=@FileName, `uploaded_by`=@UploadedBy, `owner`=@Owner WHERE `id`=@Id; SELECT * FROM `custom_resources` WHERE `id`=@Id;", conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("Id", model.Id);
cmd.Parameters.AddWithValue("FileName", model.FileName);
cmd.Parameters.AddWithValue("UploadedBy", !string.IsNullOrEmpty(model.UploadedBy) ? model.UploadedBy : DBNull.Value);
cmd.Parameters.AddWithValue("Owner", model.Owner);
await conn.OpenAsync();
var tran = await CreateTransaction(conn);
@@ -1239,7 +1258,7 @@ namespace WeddingShare.Helpers.Database
#endregion
#region Settings
public async Task<IEnumerable<SettingModel>?> GetAllSettings(string? gallery = "")
public async Task<IEnumerable<SettingModel>?> GetAllSettings(int? galleryId = null)
{
List<SettingModel> result = new List<SettingModel>();
@@ -1256,24 +1275,20 @@ namespace WeddingShare.Helpers.Database
result = await ReadSettings(reader);
}
if (result != null && !string.IsNullOrWhiteSpace(gallery))
if (result != null && galleryId != null)
{
var galleryId = await this.GetGalleryId(gallery);
if (galleryId != null)
{
// Get Gallery Overrides
cmd = CreateCommand($"SELECT `id`, `value` FROM `gallery_settings` WHERE `gallery_id`=@GalleryId;", conn);
cmd.Parameters.AddWithValue("GalleryId", (int)galleryId);
cmd.CommandType = CommandType.Text;
// Get Gallery Overrides
cmd = CreateCommand($"SELECT `id`, `value` FROM `gallery_settings` WHERE `gallery_id`=@GalleryId;", conn);
cmd.Parameters.AddWithValue("GalleryId", (int)galleryId);
cmd.CommandType = CommandType.Text;
using (var reader = await cmd.ExecuteReaderAsync())
using (var reader = await cmd.ExecuteReaderAsync())
{
var overrides = (await ReadSettings(reader))?.Where(x => !string.IsNullOrWhiteSpace(x.Value));
if (overrides != null && overrides.Any())
{
var overrides = (await ReadSettings(reader))?.Where(x => !string.IsNullOrWhiteSpace(x.Value));
if (overrides != null && overrides.Any())
{
result = result.Where(x => !overrides.Any(o => o.Id.Equals(x.Id, StringComparison.OrdinalIgnoreCase))).ToList();
result.AddRange(overrides);
}
result = result.Where(x => !overrides.Any(o => o.Id.Equals(x.Id, StringComparison.OrdinalIgnoreCase))).ToList();
result.AddRange(overrides);
}
}
}
@@ -1284,17 +1299,21 @@ namespace WeddingShare.Helpers.Database
return result;
}
public async Task<SettingModel?> GetSetting(string id, string? gallery = "")
public async Task<SettingModel?> GetSetting(string id)
{
return await GetSetting(id, 0);
}
public async Task<SettingModel?> GetSetting(string id, int galleryId)
{
SettingModel? result;
var galleryId = await this.GetGalleryId(gallery);
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"SELECT `id`, `value` FROM (SELECT `id`, `value`, '2' AS `priority` FROM `settings` WHERE `id`=@Id UNION SELECT `id`, `value`, '1' AS `priority` FROM `gallery_settings` WHERE `id`=@Id AND `gallery_id`=@GalleryId) ORDER BY `priority` ASC LIMIT 1;", conn);
cmd.Parameters.AddWithValue("Id", id.ToUpper());
cmd.Parameters.AddWithValue("GalleryId", galleryId ?? 0);
cmd.Parameters.AddWithValue("GalleryId", galleryId);
cmd.CommandType = CommandType.Text;
await conn.OpenAsync();
@@ -1308,42 +1327,37 @@ namespace WeddingShare.Helpers.Database
return result;
}
public async Task<SettingModel?> GetGallerySpecificSetting(string id, string gallery)
public async Task<SettingModel?> GetGallerySpecificSetting(string id, int galleryId)
{
SettingModel? result = null;
var galleryId = await this.GetGalleryId(gallery);
if (galleryId != null)
{
using (var conn = await GetConnection())
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"SELECT `id`, `value` FROM `gallery_settings` WHERE `id`=@Id AND `gallery_id`=@GalleryId;", conn);
cmd.Parameters.AddWithValue("Id", id.ToUpper());
cmd.Parameters.AddWithValue("GalleryId", galleryId);
cmd.CommandType = CommandType.Text;
await conn.OpenAsync();
using (var reader = await cmd.ExecuteReaderAsync())
{
var cmd = CreateCommand($"SELECT `id`, `value` FROM `gallery_settings` WHERE `id`=@Id AND `gallery_id`=@GalleryId;", conn);
cmd.Parameters.AddWithValue("Id", id.ToUpper());
cmd.Parameters.AddWithValue("GalleryId", galleryId);
cmd.CommandType = CommandType.Text;
await conn.OpenAsync();
using (var reader = await cmd.ExecuteReaderAsync())
{
result = (await ReadSettings(reader))?.FirstOrDefault();
}
await conn.CloseAsync();
result = (await ReadSettings(reader))?.FirstOrDefault();
}
await conn.CloseAsync();
}
return result;
}
public async Task<SettingModel?> AddSetting(SettingModel model, string? gallery = "")
public async Task<SettingModel?> AddSetting(SettingModel model, int? galleryId = null)
{
SettingModel? result = null;
var galleryId = await this.GetGalleryId(gallery);
using (var conn = await GetConnection())
{
SqliteCommand cmd;
if (!string.IsNullOrWhiteSpace(gallery))
if (galleryId != null)
{
cmd = CreateCommand($"INSERT INTO `gallery_settings` (`id`, `gallery_id`, `value`) VALUES (@Id, @GalleryId, @Value); SELECT * FROM `gallery_settings` WHERE `id`=last_insert_rowid() AND `gallery_id`=@GalleryId;", conn);
cmd.Parameters.AddWithValue("GalleryId", galleryId);
@@ -1379,21 +1393,20 @@ namespace WeddingShare.Helpers.Database
if (result == null)
{
result = await this.GetSetting(model.Id, gallery);
result = galleryId != null ? await this.GetSetting(model.Id, galleryId.Value) : await this.GetSetting(model.Id);
}
return result;
}
public async Task<SettingModel?> EditSetting(SettingModel model, string? gallery = "")
public async Task<SettingModel?> EditSetting(SettingModel model, int? galleryId = null)
{
SettingModel? result = null;
var galleryId = await this.GetGalleryId(gallery);
using (var conn = await GetConnection())
{
SqliteCommand cmd;
if (!string.IsNullOrWhiteSpace(gallery))
if (galleryId != null)
{
cmd = CreateCommand($"UPDATE `gallery_settings` SET `value`=@Value WHERE `id`=@Id AND `gallery_id`=@GalleryId; SELECT * FROM `gallery_settings` WHERE `id`=@Id AND `gallery_id`=@GalleryId;", conn);
cmd.Parameters.AddWithValue("GalleryId", galleryId);
@@ -1430,23 +1443,23 @@ namespace WeddingShare.Helpers.Database
return result;
}
public async Task<SettingModel?> SetSetting(SettingModel model, string? gallery = "")
public async Task<SettingModel?> SetSetting(SettingModel model, int? galleryId = null)
{
if (!string.IsNullOrWhiteSpace(model.Id))
{
try
{
if (!string.IsNullOrWhiteSpace(gallery))
if (galleryId != null)
{
// Gallery Override
var result = await GetGallerySpecificSetting(model.Id, gallery);
var result = await GetGallerySpecificSetting(model.Id, galleryId.Value);
if (result == null && !string.IsNullOrEmpty(model.Value))
{
return await AddSetting(new SettingModel()
{
Id = model.Id.ToUpper(),
Value = model.Value
}, gallery);
}, galleryId);
}
else if (result != null && !string.IsNullOrEmpty(model.Value))
{
@@ -1454,7 +1467,7 @@ namespace WeddingShare.Helpers.Database
{
Id = model.Id.ToUpper(),
Value = model.Value
}, gallery);
}, galleryId);
}
else if (result != null && string.IsNullOrEmpty(model.Value))
{
@@ -1462,7 +1475,7 @@ namespace WeddingShare.Helpers.Database
{
Id = model.Id.ToUpper(),
Value = model.Value
}, gallery);
}, galleryId);
}
}
else
@@ -1505,15 +1518,14 @@ namespace WeddingShare.Helpers.Database
};
}
public async Task<bool> DeleteSetting(SettingModel model, string? gallery = "")
public async Task<bool> DeleteSetting(SettingModel model, int? galleryId = null)
{
bool result = false;
var galleryId = await this.GetGalleryId(gallery);
using (var conn = await GetConnection())
{
SqliteCommand cmd;
if (!string.IsNullOrWhiteSpace(gallery))
if (galleryId != null)
{
cmd = CreateCommand($"DELETE FROM `gallery_settings` WHERE `id`=@Id AND `gallery_id`=@GalleryId;", conn);
cmd.Parameters.AddWithValue("GalleryId", galleryId);
@@ -1546,15 +1558,14 @@ namespace WeddingShare.Helpers.Database
return result;
}
public async Task<bool> DeleteAllSettings(string? gallery = "")
public async Task<bool> DeleteAllSettings(int? galleryId = null)
{
bool result = false;
var galleryId = await this.GetGalleryId(gallery);
using (var conn = await GetConnection())
{
SqliteCommand cmd;
if (!string.IsNullOrWhiteSpace(gallery))
if (galleryId != null)
{
cmd = CreateCommand($"DELETE FROM `gallery_settings` WHERE `gallery_id`=@GalleryId;", conn);
cmd.Parameters.AddWithValue("GalleryId", galleryId);
@@ -1587,6 +1598,65 @@ namespace WeddingShare.Helpers.Database
}
#endregion
#region Audit Logs
public async Task<IEnumerable<AuditLogModel>?> GetAuditLogs(string term = "", int limit = 100)
{
List<AuditLogModel> result = new List<AuditLogModel>();
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"SELECT * FROM `audit_logs` WHERE `username` LIKE @Term OR `message` LIKE @Term ORDER BY `id` DESC LIMIT @Limit;", conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("Term", $"%{term?.Trim()}%");
cmd.Parameters.AddWithValue("Limit", limit);
await conn.OpenAsync();
using (var reader = await cmd.ExecuteReaderAsync())
{
result = await ReadAuditLogs(reader);
}
await conn.CloseAsync();
}
return result;
}
public async Task<AuditLogModel?> AddAuditLog(AuditLogModel model)
{
AuditLogModel? result = null;
using (var conn = await GetConnection())
{
var cmd = CreateCommand($"INSERT INTO `audit_logs` (`message`, `username`, `timestamp`) VALUES (@Message, @Username, @Timestamp); SELECT * FROM `audit_logs` WHERE `id`=last_insert_rowid();", conn);
cmd.Parameters.AddWithValue("Message", model.Message);
cmd.Parameters.AddWithValue("Username", model.Username?.ToLower());
cmd.Parameters.AddWithValue("Timestamp", ((DateTime)DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds);
cmd.CommandType = CommandType.Text;
await conn.OpenAsync();
var tran = await CreateTransaction(conn);
try
{
cmd.Transaction = tran;
using (var reader = await cmd.ExecuteReaderAsync())
{
result = (await ReadAuditLogs(reader))?.FirstOrDefault();
}
await tran.CommitAsync();
}
catch
{
await tran.RollbackAsync();
}
await conn.CloseAsync();
}
return result;
}
#endregion
#region Backups
public async Task<bool> Import(string path)
{
@@ -1654,20 +1724,18 @@ namespace WeddingShare.Helpers.Database
{
try
{
var id = !await reader.IsDBNullAsync("id") ? reader.GetInt32("id") : 0;
if (id > 0)
{
items.Add(new GalleryModel()
{
Id = id,
Name = !await reader.IsDBNullAsync("name") ? reader.GetString("name") : "Unknown",
SecretKey = !await reader.IsDBNullAsync("secret_key") ? reader.GetString("secret_key") : null,
TotalItems = !await reader.IsDBNullAsync("total") ? reader.GetInt32("total") : 0,
ApprovedItems = !await reader.IsDBNullAsync("approved") ? reader.GetInt32("approved") : 0,
PendingItems = !await reader.IsDBNullAsync("pending") ? reader.GetInt32("pending") : 0,
TotalGallerySize = !await reader.IsDBNullAsync("total_gallery_size") ? reader.GetInt64("total_gallery_size") : 0
});
}
items.Add(new GalleryModel()
{
Id = !await reader.IsDBNullAsync("id") ? reader.GetInt32("id") : 0,
Identifier = !await reader.IsDBNullAsync("identifier") ? reader.GetString("identifier") : GalleryHelper.GenerateGalleryIdentifier(),
Name = !await reader.IsDBNullAsync("name") ? reader.GetString("name") : "Unknown",
SecretKey = !await reader.IsDBNullAsync("secret_key") ? reader.GetString("secret_key") : null,
TotalItems = !await reader.IsDBNullAsync("total") ? reader.GetInt32("total") : 0,
ApprovedItems = !await reader.IsDBNullAsync("approved") ? reader.GetInt32("approved") : 0,
PendingItems = !await reader.IsDBNullAsync("pending") ? reader.GetInt32("pending") : 0,
TotalGallerySize = !await reader.IsDBNullAsync("total_gallery_size") ? reader.GetInt64("total_gallery_size") : 0,
Owner = !await reader.IsDBNullAsync("owner") ? reader.GetInt32("owner") : 0
});
}
catch (Exception ex)
{
@@ -1696,7 +1764,6 @@ namespace WeddingShare.Helpers.Database
{
Id = id,
GalleryId = !await reader.IsDBNullAsync("gallery_id") ? reader.GetInt32("gallery_id") : 0,
GalleryName = !await reader.IsDBNullAsync("gallery_name") ? reader.GetString("gallery_name") : string.Empty,
Title = !await reader.IsDBNullAsync("title") ? reader.GetString("title") : string.Empty,
UploadedBy = !await reader.IsDBNullAsync("uploaded_by") ? reader.GetString("uploaded_by") : null,
UploadedDate = !await reader.IsDBNullAsync("uploaded_date") ? DateTime.UnixEpoch.AddSeconds(reader.GetInt32("uploaded_date")) : null,
@@ -1736,7 +1803,6 @@ namespace WeddingShare.Helpers.Database
{
Id = id,
GalleryId = !await reader.IsDBNullAsync("gallery_id") ? reader.GetInt32("gallery_id") : 0,
GalleryName = !await reader.IsDBNullAsync("gallery_name") ? reader.GetString("gallery_name") : "default",
Title = !await reader.IsDBNullAsync("title") ? reader.GetString("title") : string.Empty,
UploadedBy = !await reader.IsDBNullAsync("uploaded_by") ? reader.GetString("uploaded_by") : null,
Checksum = !await reader.IsDBNullAsync("checksum") ? reader.GetString("checksum") : null,
@@ -1775,6 +1841,8 @@ namespace WeddingShare.Helpers.Database
Id = id,
Username = !await reader.IsDBNullAsync("failed_logins") ? reader.GetString("username").ToLower() : string.Empty,
Email = !await reader.IsDBNullAsync("email") ? reader.GetString("email") : null,
State = !await reader.IsDBNullAsync("state") ? (AccountState)reader.GetInt32("state") : AccountState.Active,
Level = !await reader.IsDBNullAsync("level") ? (UserLevel)reader.GetInt32("level") : UserLevel.Basic,
Password = null,
FailedLogins = !await reader.IsDBNullAsync("failed_logins") ? reader.GetInt32("failed_logins") : 0,
LockoutUntil = !await reader.IsDBNullAsync("lockout_until") ? DateTime.UnixEpoch.AddSeconds(reader.GetInt32("lockout_until")) : null,
@@ -1809,7 +1877,8 @@ namespace WeddingShare.Helpers.Database
{
Id = id,
FileName = !await reader.IsDBNullAsync("file_name") ? reader.GetString("file_name") : string.Empty,
UploadedBy = !await reader.IsDBNullAsync("uploaded_by") ? reader.GetString("uploaded_by") : null
UploadedBy = !await reader.IsDBNullAsync("uploaded_by") ? reader.GetString("uploaded_by") : null,
Owner = !await reader.IsDBNullAsync("owner") ? reader.GetInt32("owner") : 0
});
}
}
@@ -1852,6 +1921,38 @@ namespace WeddingShare.Helpers.Database
return items;
}
private async Task<List<AuditLogModel>> ReadAuditLogs(SqliteDataReader? reader)
{
var items = new List<AuditLogModel>();
if (reader != null && reader.HasRows)
{
while (reader.Read())
{
try
{
var id = !await reader.IsDBNullAsync("id") ? reader.GetInt32("id") : 0;
if (id > 0)
{
items.Add(new AuditLogModel()
{
Id = id,
Username = !await reader.IsDBNullAsync("username") ? reader.GetString("username") : string.Empty,
Message = !await reader.IsDBNullAsync("message") ? reader.GetString("message") : string.Empty,
Timestamp = !await reader.IsDBNullAsync("timestamp") ? DateTime.UnixEpoch.AddSeconds(reader.GetInt32("timestamp")) : default(DateTime)
});
}
}
catch (Exception ex)
{
_logger.LogWarning(ex, $"Failed to parse audit log model from database - {ex?.Message}");
}
}
}
return items;
}
#endregion
}
}

View File

@@ -1,4 +1,5 @@
using System.Reflection;
using System.Text.RegularExpressions;
using DbUp;
using DbUp.Engine;
using WeddingShare.Constants;
@@ -30,7 +31,8 @@ namespace WeddingShare.Helpers.Dbup
dbupResult = new DbupSqliteHelper().Migrate(connString);
break;
case "mysql":
dbupResult = new DbupMySqlHelper().Migrate(connString);
var databaseName = config.GetOrDefault(Settings.Database.DatabaseName, "weddingshare");
dbupResult = new DbupMySqlHelper().Migrate(connString, databaseName);
break;
default:
var error = $"Database type '{dbType}' is not yet supported by this application";
@@ -50,19 +52,19 @@ namespace WeddingShare.Helpers.Dbup
}
var isDemoMode = config.GetOrDefault(Settings.IsDemoMode, false);
var username = !isDemoMode ? config.GetOrDefault(Settings.Account.Admin.Username, "admin").ToLower() : "demo";
var adminAccount = new UserModel()
var username = !isDemoMode ? config.GetOrDefault(Settings.Account.Admin.Username, config.GetOrDefault(Settings.Account.Owner.Username, "admin")).ToLower() : "demo";
var ownerAccount = new UserModel()
{
Username = username,
Password = encryption.Encrypt(!isDemoMode ? config.GetOrDefault(Settings.Account.Admin.Password, "admin") : "demo", username)
Password = encryption.Encrypt(!isDemoMode ? config.GetOrDefault(Settings.Account.Admin.Password, config.GetOrDefault(Settings.Account.Owner.Password, "admin")) : "demo", username)
};
await database.InitAdminAccount(adminAccount);
await database.InitOwnerAccount(ownerAccount);
await new DbupImporter(config, database, loggerFactory.CreateLogger<DbupImporter>()).ImportSettings();
if (config.GetOrDefault(Settings.Account.Admin.LogPassword, false))
if (config.GetOrDefault(Settings.Account.Owner.LogPassword, false))
{
logger.LogInformation($"Password: {adminAccount.Password}");
logger.LogInformation($"Password: {ownerAccount.Password}");
}
if (config.GetOrDefault(Security.MultiFactor.ResetToDefault, false))
@@ -103,17 +105,19 @@ namespace WeddingShare.Helpers.Dbup
public class DbupMySqlHelper
{
public DatabaseUpgradeResult Migrate(string connectionString)
public DatabaseUpgradeResult Migrate(string connectionString, string database)
{
try
{
database = !string.IsNullOrWhiteSpace(database) ? database : Regex.Match(connectionString, "Database\\=(.+?)(;|$)", RegexOptions.IgnoreCase | RegexOptions.Multiline).Groups[1].Value;
var dbupBuilder = DeployChanges.To
.MySqlDatabase(connectionString)
.WithScriptsEmbeddedInAssembly(Assembly.GetExecutingAssembly())
.WithScriptNameComparer(new DbupScriptComparer())
.WithFilter(new DbupScriptFilter(DatabaseType.MySQL))
.LogToConsole();
dbupBuilder.Configure(c => c.Journal = new DbupMySqlTableJournal(() => c.ConnectionManager, () => c.Log, "weddingshare", "schemaversions"));
dbupBuilder.Configure(c => c.Journal = new DbupMySqlTableJournal(() => c.ConnectionManager, () => c.Log, database, "schemaversions"));
return dbupBuilder.Build().PerformUpgrade();
}

View File

@@ -32,7 +32,7 @@ namespace WeddingShare.Helpers.Dbup
catch { }
}
var galleries = await database.GetAllGalleries();
var galleries = (await database.GetAllGalleries())?.Where(x => !x.Identifier.Equals("All", StringComparison.OrdinalIgnoreCase));
if (galleries != null && galleries.Any())
{
var galleryKeys = GetKeys<Constants.Settings.Gallery>();
@@ -51,7 +51,7 @@ namespace WeddingShare.Helpers.Dbup
{
Id = key,
Value = galleryOverride
}, gallery.Name);
}, gallery.Id);
}
}
catch { }

View File

@@ -1,6 +1,7 @@
using System.Numerics;
using System.Security.Cryptography;
using System.Text;
using System.Text.RegularExpressions;
namespace WeddingShare.Helpers
{
@@ -22,6 +23,7 @@ namespace WeddingShare.Helpers
Task<string> GetChecksum(string path);
Task<DateTime?> GetCreationDatetime(string path);
string BytesToHumanReadable(long bytes, int decimalPlaces = 0);
string SanitizeFilename(string filename);
}
public class FileHelper : IFileHelper
@@ -211,5 +213,13 @@ namespace WeddingShare.Helpers
return total.ToString($"{decimalFormat.TrimEnd('.')} {sizes[place]}");
}
public string SanitizeFilename(string filename)
{
var invalidChars = Regex.Escape(new string(Path.GetInvalidFileNameChars()));
var regex = string.Format(@"([{0}]*\.+$)|([{0}]+)", invalidChars);
return Regex.Replace(filename, regex, string.Empty, RegexOptions.Compiled);
}
}
}

View File

@@ -0,0 +1,10 @@
namespace WeddingShare.Helpers
{
public class GalleryHelper
{
public static string GenerateGalleryIdentifier()
{
return Guid.NewGuid().ToString().Replace("-", string.Empty).ToLower();
}
}
}

View File

@@ -0,0 +1,66 @@
using System.Text.RegularExpressions;
using System.Web;
namespace WeddingShare.Helpers
{
public class HtmlSanitizer
{
public static string Sanitize(string input)
{
var output = input;
if (!string.IsNullOrWhiteSpace(output))
{
output = SanitizeHtmlTags(input, new[] { ".*" });
output = SanitizeHtmlAttributes(output, new[] { ".*" });
output = SanitizeLinks(output);
output = HttpUtility.HtmlEncode(output);
}
return output;
}
public static string SanitizeHtmlTags(string input, string[] tags)
{
var output = input;
foreach (var tag in tags)
{
output = new Regex($"<\\/?\\s*{tag}\\s*[^>]*>", RegexOptions.IgnoreCase).Replace(output, string.Empty);
}
return output;
}
public static string SanitizeHtmlAttributes(string input, string[] attrs)
{
var output = input;
foreach (var attr in attrs)
{
output = new Regex($"{attr}\\s*=\\s*['\"].*?['\"]", RegexOptions.IgnoreCase).Replace(output, string.Empty);
}
return output;
}
public static string SanitizeLinks(string input)
{
var output = input;
output = new Regex(@"href\s*=\s*['""]javascript:[^'""]*['""]", RegexOptions.IgnoreCase).Replace(output, string.Empty);
output = new Regex(@"(http|https):\/\/[^\s<>]+", RegexOptions.IgnoreCase).Replace(output, string.Empty);
return output;
}
public static bool MayContainXss(string input)
{
var sanitized = Sanitize(input);
return !string.Equals(input, sanitized);
}
}
}

View File

@@ -6,6 +6,8 @@ namespace WeddingShare.Helpers
{
public List<CultureInfo> DetectSupportedCultures();
public Task<List<CultureInfo>> DetectSupportedCulturesAsync();
public Task<bool> IsCultureSupported(string culture);
public Task<string> GetOrFallbackCulture(string culture, string fallback);
}
public class LanguageHelper : ILanguageHelper
@@ -19,7 +21,7 @@ namespace WeddingShare.Helpers
var resourceFiles = Directory.GetFiles(Path.Combine("Resources", "Lang"), "*.resx");
var detectedCultures = resourceFiles
.Select(x => Path.GetFileNameWithoutExtension(x))
.Where(x => x.Contains("."))
.Where(x => x.Contains(".") && x.Contains("-"))
.Select(x => x.Split('.').LastOrDefault());
foreach (var detectedCulture in detectedCultures)
@@ -46,5 +48,56 @@ namespace WeddingShare.Helpers
{
return Task.Run(DetectSupportedCultures);
}
public async Task<bool> IsCultureSupported(string culture)
{
return this.IsCultureSupported(culture, await DetectSupportedCulturesAsync());
}
public bool IsCultureSupported(string culture, List<CultureInfo> supported)
{
try
{
if (!string.IsNullOrWhiteSpace(culture) && supported.Any(x => string.Equals(x.Name, culture, StringComparison.OrdinalIgnoreCase)))
{
return true;
}
}
catch { }
return false;
}
public async Task<string> GetOrFallbackCulture(string culture, string fallback)
{
return this.GetOrFallbackCulture(culture, fallback, await DetectSupportedCulturesAsync());
}
public string GetOrFallbackCulture(string culture, string fallback, List<CultureInfo> supported)
{
try
{
if (!string.IsNullOrWhiteSpace(culture))
{
var match = supported.FirstOrDefault(x => string.Equals(x.Name, culture, StringComparison.OrdinalIgnoreCase));
if (match != null)
{
return match.Name;
}
}
if (!string.IsNullOrWhiteSpace(fallback))
{
var match = supported.FirstOrDefault(x => string.Equals(x.Name, fallback, StringComparison.OrdinalIgnoreCase));
if (match != null)
{
return match.Name;
}
}
}
catch { }
return "en-GB";
}
}
}

View File

@@ -25,8 +25,7 @@ namespace WeddingShare.Helpers.Notifications
if (string.IsNullOrWhiteSpace(await _settings.GetOrDefault(Constants.Notifications.Ntfy.Token, string.Empty)))
{
_logger.LogWarning($"Invalid Ntfy token specified");
return false;
_logger.LogWarning($"No Ntfy token specified. It is recommended that you secure your topic with a token");
}
if (await _settings.GetOrDefault(Constants.Notifications.Ntfy.Enabled, false))

View File

@@ -1,20 +1,23 @@
using WeddingShare.Helpers.Database;
using System.Text;
using WeddingShare.Constants;
using WeddingShare.Helpers.Database;
using WeddingShare.Models.Database;
namespace WeddingShare.Helpers
{
public interface ISettingsHelper
{
Task<SettingModel?> Get(string key, string? gallery = "");
Task<string> GetOrDefault(string key, string defaultValue, string? gallery = "");
Task<int> GetOrDefault(string key, int defaultValue, string? gallery = "");
Task<long> GetOrDefault(string key, long defaultValue, string? gallery = "");
Task<decimal> GetOrDefault(string key, decimal defaultValue, string? gallery = "");
Task<double> GetOrDefault(string key, double defaultValue, string? gallery = "");
Task<bool> GetOrDefault(string key, bool defaultValue, string? gallery = "");
Task<DateTime?> GetOrDefault(string key, DateTime? defaultValue, string? gallery = "");
Task<SettingModel?> SetSetting(string key, string value, string? gallery = "");
Task<bool> DeleteSetting(string key, string? gallery = "");
Task<SettingModel?> Get(string key, int? galleryId = null);
Task<string> GetOrDefault(string key, string defaultValue, int? galleryId = null);
Task<int> GetOrDefault(string key, int defaultValue, int? galleryId = null);
Task<long> GetOrDefault(string key, long defaultValue, int? galleryId = null);
Task<decimal> GetOrDefault(string key, decimal defaultValue, int? galleryId = null);
Task<double> GetOrDefault(string key, double defaultValue, int? galleryId = null);
Task<bool> GetOrDefault(string key, bool defaultValue, int? galleryId = null);
Task<DateTime?> GetOrDefault(string key, DateTime? defaultValue, int? galleryId = null);
Task<SettingModel?> SetSetting(string key, string value, int? galleryId = null);
Task<bool> DeleteSetting(string key, int? galleryId = null);
Task<string> GetReleaseVersion(int places = 3);
}
public class SettingsHelper : ISettingsHelper
@@ -30,13 +33,13 @@ namespace WeddingShare.Helpers
_logger = logger;
}
public async Task<SettingModel?> Get(string key, string? gallery = "")
public async Task<SettingModel?> Get(string key, int? galleryId = null)
{
if (!string.IsNullOrWhiteSpace(key))
{
try
{
var dbValue = await _databaseHelper.GetSetting(key, gallery);
var dbValue = galleryId != null ? await _databaseHelper.GetSetting(key, galleryId.Value) : await _databaseHelper.GetSetting(key);
if (dbValue != null)
{
return dbValue;
@@ -61,11 +64,11 @@ namespace WeddingShare.Helpers
return null;
}
public async Task<string> GetOrDefault(string key, string defaultValue, string? gallery = "")
public async Task<string> GetOrDefault(string key, string defaultValue, int? galleryId = null)
{
try
{
var value = (await this.Get(key, gallery))?.Value;
var value = (await this.Get(key, galleryId))?.Value;
if (!string.IsNullOrWhiteSpace(value))
{
return value;
@@ -76,11 +79,11 @@ namespace WeddingShare.Helpers
return defaultValue;
}
public async Task<int> GetOrDefault(string key, int defaultValue, string? gallery = "")
public async Task<int> GetOrDefault(string key, int defaultValue, int? galleryId = null)
{
try
{
var value = await this.GetOrDefault(key, string.Empty, gallery);
var value = await this.GetOrDefault(key, string.Empty, galleryId);
if (!string.IsNullOrWhiteSpace(value))
{
return Convert.ToInt32(value);
@@ -91,11 +94,11 @@ namespace WeddingShare.Helpers
return defaultValue;
}
public async Task<long> GetOrDefault(string key, long defaultValue, string? gallery = "")
public async Task<long> GetOrDefault(string key, long defaultValue, int? galleryId = null)
{
try
{
var value = await this.GetOrDefault(key, string.Empty, gallery);
var value = await this.GetOrDefault(key, string.Empty, galleryId);
if (!string.IsNullOrWhiteSpace(value))
{
return Convert.ToInt64(value);
@@ -106,11 +109,11 @@ namespace WeddingShare.Helpers
return defaultValue;
}
public async Task<decimal> GetOrDefault(string key, decimal defaultValue, string? gallery = "")
public async Task<decimal> GetOrDefault(string key, decimal defaultValue, int? galleryId = null)
{
try
{
var value = await this.GetOrDefault(key, string.Empty, gallery);
var value = await this.GetOrDefault(key, string.Empty, galleryId);
if (!string.IsNullOrWhiteSpace(value))
{
return Convert.ToDecimal(value);
@@ -121,11 +124,11 @@ namespace WeddingShare.Helpers
return defaultValue;
}
public async Task<double> GetOrDefault(string key, double defaultValue, string? gallery = "")
public async Task<double> GetOrDefault(string key, double defaultValue, int? galleryId = null)
{
try
{
var value = await this.GetOrDefault(key, string.Empty, gallery);
var value = await this.GetOrDefault(key, string.Empty, galleryId);
if (!string.IsNullOrWhiteSpace(value))
{
return Convert.ToDouble(value);
@@ -136,11 +139,11 @@ namespace WeddingShare.Helpers
return defaultValue;
}
public async Task<bool> GetOrDefault(string key, bool defaultValue, string? gallery = "")
public async Task<bool> GetOrDefault(string key, bool defaultValue, int? galleryId = null)
{
try
{
var value = await this.GetOrDefault(key, string.Empty, gallery);
var value = await this.GetOrDefault(key, string.Empty, galleryId);
if (!string.IsNullOrWhiteSpace(value))
{
return Convert.ToBoolean(value);
@@ -151,11 +154,11 @@ namespace WeddingShare.Helpers
return defaultValue;
}
public async Task<DateTime?> GetOrDefault(string key, DateTime? defaultValue, string? gallery = "")
public async Task<DateTime?> GetOrDefault(string key, DateTime? defaultValue, int? galleryId = null)
{
try
{
var value = await this.GetOrDefault(key, string.Empty, gallery);
var value = await this.GetOrDefault(key, string.Empty, galleryId);
if (!string.IsNullOrWhiteSpace(value))
{
return Convert.ToDateTime(value);
@@ -166,7 +169,7 @@ namespace WeddingShare.Helpers
return defaultValue;
}
public async Task<SettingModel?> SetSetting(string key, string value, string? gallery = "")
public async Task<SettingModel?> SetSetting(string key, string value, int? galleryId = null)
{
if (!string.IsNullOrWhiteSpace(key))
{
@@ -174,28 +177,59 @@ namespace WeddingShare.Helpers
{
Id = key,
Value = value
}, gallery);
}, galleryId);
}
return null;
}
public async Task<bool> DeleteSetting(string key, string? gallery = "")
public async Task<bool> DeleteSetting(string key, int? galleryId = null)
{
if (!string.IsNullOrWhiteSpace(key))
{
return await _databaseHelper.DeleteSetting(new SettingModel()
{
Id = key.ToUpper()
}, gallery);
}, galleryId);
}
return false;
}
public async Task<bool> DeleteAllSettings(string? gallery = "")
public async Task<bool> DeleteAllSettings(int? galleryId = null)
{
return await _databaseHelper.DeleteAllSettings(gallery);
return await _databaseHelper.DeleteAllSettings(galleryId);
}
public async Task<string> GetReleaseVersion(int places = 3)
{
try
{
var versionNumberParts = (await this.GetOrDefault(Release.Version, "1.0.0"))?.Split(new char[] { '.' }, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
if (versionNumberParts != null && versionNumberParts.Length > 0)
{
var builder = new StringBuilder();
for (var i = 0; i < places; i++)
{
if (i < versionNumberParts.Length)
{
builder.Append($".{versionNumberParts[i]}");
}
else
{
builder.Append(".0");
}
}
return builder.ToString().Trim('.');
}
}
catch (Exception ex)
{
_logger.LogError(ex, $"Failed to build release version string - {ex?.Message}");
}
return "1.0.0";
}
}
}

View File

@@ -0,0 +1,10 @@
namespace WeddingShare.Models.Database
{
public class AuditLogModel
{
public int Id { get; set; }
public string Message { get; set; }
public string Username { get; set; }
public DateTime Timestamp { get; set; }
}
}

View File

@@ -5,5 +5,6 @@
public int Id { get; set; }
public string? FileName { get; set; }
public string? UploadedBy { get; set; }
public int Owner { get; set; }
}
}

View File

@@ -5,15 +5,14 @@ namespace WeddingShare.Models.Database
public class GalleryItemModel
{
public GalleryItemModel()
: this(0, 0, string.Empty, string.Empty, null, null, null, MediaType.Unknown, ImageOrientation.None, GalleryItemState.Pending, 0)
: this(0, 0, string.Empty, null, null, null, MediaType.Unknown, ImageOrientation.None, GalleryItemState.Pending, 0)
{
}
public GalleryItemModel(int id, int galleryId, string galleryName, string title, string? uploadedBy, DateTime? uploadedDate, string? checksum, MediaType mediaType, ImageOrientation orientation, GalleryItemState state, long file_size)
public GalleryItemModel(int id, int galleryId, string title, string? uploadedBy, DateTime? uploadedDate, string? checksum, MediaType mediaType, ImageOrientation orientation, GalleryItemState state, long file_size)
{
Id = id;
GalleryId = galleryId;
GalleryName = galleryName;
Title = title;
UploadedBy = uploadedBy;
UploadedDate = uploadedDate;
@@ -26,7 +25,6 @@ namespace WeddingShare.Models.Database
public int Id { get; set; }
public int GalleryId { get; set; }
public string GalleryName { get; set; }
public string Title { get; set; }
public string? UploadedBy { get; set; }
public DateTime? UploadedDate { get; set; }

View File

@@ -1,14 +1,18 @@
namespace WeddingShare.Models.Database
using WeddingShare.Helpers;
namespace WeddingShare.Models.Database
{
public class GalleryModel
{
public int Id { get; set; }
public string Name { get; set; }
public string Identifier { get; set; } = GalleryHelper.GenerateGalleryIdentifier();
public string Name { get; set; } = "Unknown";
public string? SecretKey { get; set; }
public int TotalItems { get; set; }
public int ApprovedItems { get; set; }
public int PendingItems { get; set; }
public long TotalGallerySize { get; set; }
public long TotalGallerySize { get; set; }
public int Owner { get; set; }
public string CalculateUsage(long maxSizeMB = long.MaxValue)
{

View File

@@ -1,4 +1,6 @@
namespace WeddingShare.Models.Database
using WeddingShare.Enums;
namespace WeddingShare.Models.Database
{
public class UserModel
{
@@ -10,6 +12,8 @@
public int FailedLogins { get; set; }
public DateTime? LockoutUntil { get; set; }
public string? MultiFactorToken { get; set; }
public AccountState State { get; set; } = AccountState.Active;
public UserLevel Level { get; set; } = UserLevel.Basic;
public bool IsLockedOut
{

View File

@@ -5,8 +5,6 @@
public bool Database { get; set; } = true;
public bool Uploads { get; set; } = true;
public bool Thumbnails { get; set; } = true;
public bool Logos { get; set; } = true;
public bool Banners { get; set; } = true;
public bool CustomResources { get; set; } = true;
}
}

View File

@@ -1,18 +0,0 @@
namespace WeddingShare.Models
{
public class FileUploader
{
public FileUploader(string id, string? key, string url, bool identityRequired = false)
{
this.GalleryId = id;
this.SecretKey = key;
this.UploadUrl = url;
this.IdentityRequired = identityRequired;
}
public string? GalleryId { get; set; }
public string? SecretKey { get; set; }
public string? UploadUrl { get; set; }
public bool IdentityRequired { get; set; }
}
}

View File

@@ -1,4 +1,5 @@
using WeddingShare.Enums;
using WeddingShare.Models.Database;
namespace WeddingShare.Models
{
@@ -10,24 +11,24 @@ namespace WeddingShare.Models
}
public PhotoGallery(ViewMode viewMode, GalleryGroup groupBy, GalleryOrder orderBy)
: this(1, "default", string.Empty, viewMode, groupBy, orderBy, new List<PhotoGalleryImage>(), false)
: this(null, string.Empty, viewMode, groupBy, orderBy, new List<PhotoGalleryImage>(), false)
{
}
public PhotoGallery(int id, string name, string secretKey, ViewMode viewMode, GalleryGroup groupBy, GalleryOrder orderBy, List<PhotoGalleryImage> images, bool requireIdentity)
public PhotoGallery(GalleryModel? gallery, string secretKey, ViewMode viewMode, GalleryGroup groupBy, GalleryOrder orderBy, List<PhotoGalleryImage> images, bool uploadActivated)
{
this.GalleryId = id;
this.GalleryName = name;
this.Gallery = gallery;
this.SecretKey = secretKey;
this.ViewMode = viewMode;
this.GroupBy = groupBy;
this.OrderBy = orderBy;
this.PendingCount = 0;
this.Images = images;
this.FileUploader = new FileUploader(name, secretKey, "/Gallery/UploadImage", requireIdentity);
this.UploadActivated = uploadActivated;
}
public int? GalleryId { get; set; }
public string? GalleryName { get; set; }
public GalleryModel? Gallery { get; set; }
public string? SecretKey { get; set; }
public ViewMode ViewMode { get; set; }
public GalleryGroup GroupBy { get; set; }
public GalleryOrder OrderBy { get; set; }
@@ -45,7 +46,7 @@ namespace WeddingShare.Models
}
}
public List<PhotoGalleryImage>? Images { get; set; }
public FileUploader? FileUploader { get; set; }
public bool UploadActivated { get; set; } = false;
}
public class PhotoGalleryImage
@@ -62,6 +63,7 @@ namespace WeddingShare.Models
public DateTime? UploadDate { get; set; }
public string? ImagePath { get; set; }
public string? ThumbnailPath { get; set; }
public string? ThumbnailPathFallback { get; set; }
public MediaType MediaType { get; set; }
}
}

View File

@@ -0,0 +1,31 @@
using System.Text.Json.Serialization;
namespace WeddingShare.Models
{
public class SponsorsList
{
[JsonPropertyName("tiers")]
public IEnumerable<SponsorsTier>? Tiers { get; set; }
}
public class SponsorsTier
{
[JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("priority")]
public int Priority { get; set; }
[JsonPropertyName("platforms")]
public IEnumerable<SponsorPlatform>? Platforms { get; set; }
}
public class SponsorPlatform
{
[JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("sponsors")]
public IEnumerable<string>? Sponsors { get; set; }
}
}

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>جالري</value>
</data>
<data name="Accept" xml:space="preserve">
<value>قبول</value>
</data>
<data name="Action" xml:space="preserve">
<value>الإجراء</value>
</data>
<data name="Actions" xml:space="preserve">
<value>الإجراءات</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>الوظائف المعتمدة</value>
</data>
<data name="Audit" xml:space="preserve">
<value>مراجعة الحسابات</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>وافق الشعب على جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>رفض الشعب جميع الاستعراضات المعلقة</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>قام زائر بالموافقة على استخدام الكعك</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>معرض مبتكر</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>مستعمل جديد</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>الموارد المخصصة حسب الطلب</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>موارد جمركية محمولة</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>معرض محرر</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>المستعمل المحذف</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>تم تصدير الدعم</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>لم يتم اكتشاف أي محاولة لقطع الأشجار</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>محاولات قطع الأشجار المعطلة</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>مستعمل الفرو</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>إستورد الدعم</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>تمت الموافقة عليها في معرض</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>محذوفة في المعرض</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>مرفوضة في المعرض</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>كم عدد السجلات التي تظهر</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Limit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>فشل في الحصول على قائمة مراجعة الحسابات</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>تمت سرقتها</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>سجلات مراجعة الحسابات</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>مضافة متعددة العوامل لحسابهم</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>تم توفير المفاعلات المتعددة</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>إعادة تحديد مفتاحها المتعدد العوامل</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reset multi-factor for user</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>سجلات الملفات استناداً إلى فترة تفتيش</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>البحث</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>تحديث نظام المعرض</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>مستعمل غير متفجر</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>معرض مستكمل</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>آخر المستعمل</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>مستعمل سجل</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>مسحت كل المجرات</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>معرض مسلّح</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>المتاح</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>فشل في التحقق من حساب الولاية</value>
</data>
<data name="Clean" xml:space="preserve">
<value>نظيفة</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>اقترب</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>يرجى الاتصال بمدير الموقع لتوفير إمكانية الوصول</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>فشل في تسجيل رسالة مراجعة حسابات لموافقة الكعك</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>سياسة كوكي</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>من خلال استخدام هذا الموقع، توافق على استخدامنا للكوكيز الأساسي وفقا لشروط استخدام الكعك. لمعرفة المزيد من الرجاء مشاهدة</value>
</data>
<data name="Create" xml:space="preserve">
<value>الإبداع</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>أنت حالياً لا تستطيع الوصول</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>الموارد العرفية</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا المعرض؟?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>هذه نسخة تجريبية وتُمسح جميع التشكيلات بصورة دورية لضمان وضع قائمة نظيفة للمختبرين في المستقبل.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>الإجراءات المدمرة</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>فشل في تنزيل المعرض</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>فشل في تحميل المعرض. المفتاح السري غير صحيح</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>فشل في تحديث المعرض</value>
</data>
@@ -251,7 +389,7 @@
<value>من فضلك أدخل المفتاح السري.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>يوم الزفاف</value>
<value>مفتاح سري هنا</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>تم الوصول إلى الحد الأقصى المسموح به من المغالي</value>
@@ -329,7 +467,7 @@
<value>من فضلك أدخل اسم المستخدم.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>المستعمل</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>حجم ملف (ماكس)</value>
</data>
<data name="Members" xml:space="preserve">
<value>الأعضاء</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>فشل في إنشاء 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Reject</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>الإصدار</value>
</data>
<data name="Rename" xml:space="preserve">
<value>الاسم</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>New Tab Links</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>"الأيقونة التي تظهر في المُشاهدات والمقالات"</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>لوجو</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>كم عدد المجرات المسموح للمستعملين بصنعها</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>حل الإبهام</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>الإسم الذي سيظهر في العناوين</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>العنوان</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>محتوى عرضه على صفحة معلومات شرطة كوكي</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>سياسة كوكي العرفية</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>السياسات العرفية</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>فشل في الحصول على الظروف</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>يُظهرُ الرمز QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>إذا كان قانون جمهورية كوريا الشعبية الديمقراطية يحدد لغة العرض</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Include Culture in QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>اقتباس للعرض على قمة المعرض</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>المفتاح السري</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>هل يجب أن يكون المستعمل قادراً على التصفية و وسائل الإعلام؟?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>مصورون</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>هل يسمح للضيوف بتحميل المواد</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>الموضوع</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>هل يجب على المستعمل أن يرى نمط الناتج المحلي الإجمالي؟?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Usage</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>الرعاة</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>ولا يوجد في الوقت الراهن رعاة. لماذا لا تصبح الأول؟!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>عدم تحميل قائمة مقدمي مشروع القرار</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>المؤيدون</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Timestamp</value>
</data>
<data name="Total" xml:space="preserve">
<value>المجموع</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>الحمولة</value>
</data>
<data name="User" xml:space="preserve">
<value>مستخدم</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>كلمة السر المقدّمة وكلمة سر الكونفريم لا تتطابق</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>زيارة</value>
</data>
<data name="Warning" xml:space="preserve">
<value>تحذير</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Wipe</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>Invalid Gallery</value>
</data>
<data name="Accept" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="Action" xml:space="preserve">
<value>Proqram</value>
</data>
<data name="Actions" xml:space="preserve">
<value>Proqramlar</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>Tarix</value>
</data>
<data name="Audit" xml:space="preserve">
<value> Audit</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>Bütün gözəl baxışlar</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>Bütün gözəl baxışlar</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>Bir ziyaretçi cookies istifadə etdi</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>Yaradılıb</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>Yeni istifadəçi</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>Deleted xüsusi resurs</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>Xüsusi qurğu</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>Deleted gallery</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>Deleted istifadəçi</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>Bir backup qazandı</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>Qeyd olunan giriş proqramı</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>Qeydiyyatdan keçirilmiş giriş proqramları sayı sıfırlandı</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>Satışdan keçin</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value> approved in</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value> deleted in</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value> rejected in</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>Necə çox logs</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Qalereya</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>Audit siyahısı almaq üçün</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>Logged out</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>Audit Girişi</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>Onların hesabına çox kateqoriya</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>Doğru çox kateqoriya</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>Onların multi-faktor əsasını yeniləyin</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>İstifadəçi üçün çox kateqoriya</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>Domen adı qeydiyyatdan keçirt »</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>Axtarış</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>Gallery üçün yeniləndirilməsi</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>Pulsuz istifadəçi</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>Bakı</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>İstifadəçi</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>İstifadəçi</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>Bütün qalereyalar</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>Bakı</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>Daxil ol</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>Qeydiyyatdan keçin</value>
</data>
<data name="Clean" xml:space="preserve">
<value>Daxili</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>E-poçt ünvanı</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>Cookie təsdiq üçün bir audit mesajının qeydiyyatı</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>Bu saytdan istifadə etmək üçün əsas cookies istifadə etməyinizə razılaşırsınız. Daha çox tapmaq</value>
</data>
<data name="Create" xml:space="preserve">
<value>Yapon</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>Şu anda giriş deyil</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>Xüsusi Resurslar</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>Bu gallery silmək istəyirsiniz?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>Bu demo versiyasıdır. Bütün konfiqurasiya müxtəlif mühasibatçıları üçün təmiz bir slate təmin edir.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>Daxil olmaq</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>Qeydiyyatdan keçin</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>Qeydiyyatdan istifadə etmək. gizli əsas qeyd edildi</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>Gallery yeniləndirilməsi</value>
</data>
@@ -251,7 +389,7 @@
<value>Daxil əsas daxil edin.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>qoca</value>
<value>Burada gizli əsas</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>Sərgilərin maksimum xidmət nömrələrinə çatdı</value>
@@ -329,7 +467,7 @@
<value>Qeydiyyatdan istifadə edin.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Qeydiyyat</value>
<value>Ad Soyad</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Daxil ol</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>Max fayl ölçüsü</value>
</data>
<data name="Members" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>2FA qəbul edilməsi</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value> Re</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>Proqram</value>
</data>
<data name="Rename" xml:space="preserve">
<value>Ad Soyad</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>Yeni Tab Linklər</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>Qalereya</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value> Logo</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>Neçə sərgilər istifadəçilər yaratmaq üçün imkan verir</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>Daxili qaynaq</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value> The and and and</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>Ümumi</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>CookiePolicy info səhifənin göstərilməsi üçün məlumat</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>Xüsusi Cookie Policy</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>Xüsusi Siyasətlər</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>Sığorta almaq</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>QR kodu</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>QR kodu ekran dili deyil</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Əməkdaşlıq</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value> gallery A at</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>Gizli Keyf</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>Istifadəçi filtr və qrup media edə bilər?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>Filologiya</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>Qeydiyyatdan keçmək lazımdır</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>Tarix</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>Istifadəçi GDPR stil popups görmək lazımdır?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value> Slide</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Daxil ol</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>Sponsorlar</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>Şu anda sponsor deyil. Niyə ilk olmaq deyil!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>Sponsorlar siyahısı yükləyir</value>
</data>
<data name="Supporters" xml:space="preserve">
<value> Support</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Kateqoriya</value>
</data>
<data name="Total" xml:space="preserve">
<value>Ümumi</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>Tarix</value>
</data>
<data name="User" xml:space="preserve">
<value>Qadın</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>Verilmiş şəkil və konfrim şəkil döşməz</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>Bakı</value>
</data>
<data name="Warning" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Bakı</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>Invalid Gallery</value>
</data>
<data name="Accept" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="Action" xml:space="preserve">
<value>Proqram</value>
</data>
<data name="Actions" xml:space="preserve">
<value>Proqramlar</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>Tarix</value>
</data>
<data name="Audit" xml:space="preserve">
<value> Audit</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>Bütün gözəl baxışlar</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>Bütün gözəl baxışlar</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>Bir ziyaretçi cookies istifadə etdi</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>Yaradılıb</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>Yeni istifadəçi</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>Deleted xüsusi resurs</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>Xüsusi qurğu</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>Deleted gallery</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>Deleted istifadəçi</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>Bir backup qazandı</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>Qeyd olunan giriş proqramı</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>Qeydiyyatdan keçirilmiş giriş proqramları sayı sıfırlandı</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>Satışdan keçin</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value> approved in</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value> deleted in</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value> rejected in</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>Necə çox logs</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Qalereya</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>Audit siyahısı almaq üçün</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>Logged out</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>Audit Girişi</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>Onların hesabına çox kateqoriya</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>Doğru çox kateqoriya</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>Onların multi-faktor əsasını yeniləyin</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>İstifadəçi üçün çox kateqoriya</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>Domen adı qeydiyyatdan keçirt »</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>Axtarış</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>Gallery üçün yeniləndirilməsi</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>Pulsuz istifadəçi</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>Bakı</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>İstifadəçi</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>İstifadəçi</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>Bütün qalereyalar</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>Bakı</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>Daxil ol</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>Qeydiyyatdan keçin</value>
</data>
<data name="Clean" xml:space="preserve">
<value>Daxili</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>E-poçt ünvanı</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>Cookie təsdiq üçün bir audit mesajının qeydiyyatı</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>Bu saytdan istifadə etmək üçün əsas cookies istifadə etməyinizə razılaşırsınız. Daha çox tapmaq</value>
</data>
<data name="Create" xml:space="preserve">
<value>Yapon</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>Şu anda giriş deyil</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>Xüsusi Resurslar</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>Bu gallery silmək istəyirsiniz?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>Bu demo versiyasıdır. Bütün konfiqurasiya müxtəlif mühasibatçıları üçün təmiz bir slate təmin edir.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>Daxil olmaq</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>Qeydiyyatdan keçin</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>Qeydiyyatdan istifadə etmək. gizli əsas qeyd edildi</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>Gallery yeniləndirilməsi</value>
</data>
@@ -251,7 +389,7 @@
<value>Daxil əsas daxil edin.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>qoca</value>
<value>Burada gizli əsas</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>Sərgilərin maksimum xidmət nömrələrinə çatdı</value>
@@ -329,7 +467,7 @@
<value>Qeydiyyatdan istifadə edin.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Qeydiyyat</value>
<value>Ad Soyad</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Daxil ol</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>Max fayl ölçüsü</value>
</data>
<data name="Members" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>2FA qəbul edilməsi</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value> Re</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>Proqram</value>
</data>
<data name="Rename" xml:space="preserve">
<value>Ad Soyad</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>Yeni Tab Linklər</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>Qalereya</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value> Logo</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>Neçə sərgilər istifadəçilər yaratmaq üçün imkan verir</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>Daxili qaynaq</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value> The and and and</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>Ümumi</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>CookiePolicy info səhifənin göstərilməsi üçün məlumat</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>Xüsusi Cookie Policy</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>Xüsusi Siyasətlər</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>Sığorta almaq</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>QR kodu</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>QR kodu ekran dili deyil</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Əməkdaşlıq</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value> gallery A at</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>Gizli Keyf</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>Istifadəçi filtr və qrup media edə bilər?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>Filologiya</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>Qeydiyyatdan keçmək lazımdır</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>Tarix</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>Istifadəçi GDPR stil popups görmək lazımdır?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value> Slide</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Daxil ol</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>Sponsorlar</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>Şu anda sponsor deyil. Niyə ilk olmaq deyil!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>Sponsorlar siyahısı yükləyir</value>
</data>
<data name="Supporters" xml:space="preserve">
<value> Support</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Kateqoriya</value>
</data>
<data name="Total" xml:space="preserve">
<value>Ümumi</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>Tarix</value>
</data>
<data name="User" xml:space="preserve">
<value>Qadın</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>Verilmiş şəkil və konfrim şəkil döşməz</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>Bakı</value>
</data>
<data name="Warning" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Bakı</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>Invalid Gallery</value>
</data>
<data name="Accept" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="Action" xml:space="preserve">
<value>Proqram</value>
</data>
<data name="Actions" xml:space="preserve">
<value>Proqramlar</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>Tarix</value>
</data>
<data name="Audit" xml:space="preserve">
<value> Audit</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>Bütün gözəl baxışlar</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>Bütün gözəl baxışlar</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>Bir ziyaretçi cookies istifadə etdi</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>Yaradılıb</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>Yeni istifadəçi</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>Deleted xüsusi resurs</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>Xüsusi qurğu</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>Deleted gallery</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>Deleted istifadəçi</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>Bir backup qazandı</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>Qeyd olunan giriş proqramı</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>Qeydiyyatdan keçirilmiş giriş proqramları sayı sıfırlandı</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>Satışdan keçin</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value> approved in</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value> deleted in</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value> rejected in</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>Necə çox logs</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Qalereya</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>Audit siyahısı almaq üçün</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>Logged out</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>Audit Girişi</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>Onların hesabına çox kateqoriya</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>Doğru çox kateqoriya</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>Onların multi-faktor əsasını yeniləyin</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>İstifadəçi üçün çox kateqoriya</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>Domen adı qeydiyyatdan keçirt »</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>Axtarış</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>Gallery üçün yeniləndirilməsi</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>Pulsuz istifadəçi</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>Bakı</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>İstifadəçi</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>İstifadəçi</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>Bütün qalereyalar</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>Bakı</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>Daxil ol</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>Qeydiyyatdan keçin</value>
</data>
<data name="Clean" xml:space="preserve">
<value>Daxili</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>E-poçt ünvanı</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>Cookie təsdiq üçün bir audit mesajının qeydiyyatı</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>Bu saytdan istifadə etmək üçün əsas cookies istifadə etməyinizə razılaşırsınız. Daha çox tapmaq</value>
</data>
<data name="Create" xml:space="preserve">
<value>Yapon</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>Şu anda giriş deyil</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>Xüsusi Resurslar</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>Bu gallery silmək istəyirsiniz?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>Bu demo versiyasıdır. Bütün konfiqurasiya müxtəlif mühasibatçıları üçün təmiz bir slate təmin edir.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>Daxil olmaq</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>Qeydiyyatdan keçin</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>Qeydiyyatdan istifadə etmək. gizli əsas qeyd edildi</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>Gallery yeniləndirilməsi</value>
</data>
@@ -251,7 +389,7 @@
<value>Daxil əsas daxil edin.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>qoca</value>
<value>Burada gizli əsas</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>Sərgilərin maksimum xidmət nömrələrinə çatdı</value>
@@ -329,7 +467,7 @@
<value>Qeydiyyatdan istifadə edin.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Qeydiyyat</value>
<value>Ad Soyad</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Daxil ol</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>Max fayl ölçüsü</value>
</data>
<data name="Members" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>2FA qəbul edilməsi</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value> Re</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>Proqram</value>
</data>
<data name="Rename" xml:space="preserve">
<value>Ad Soyad</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>Yeni Tab Linklər</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>Qalereya</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value> Logo</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>Neçə sərgilər istifadəçilər yaratmaq üçün imkan verir</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>Daxili qaynaq</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value> The and and and</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>Ümumi</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>CookiePolicy info səhifənin göstərilməsi üçün məlumat</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>Xüsusi Cookie Policy</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>Xüsusi Siyasətlər</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>Sığorta almaq</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>QR kodu</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>QR kodu ekran dili deyil</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Əməkdaşlıq</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value> gallery A at</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>Gizli Keyf</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>Istifadəçi filtr və qrup media edə bilər?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>Filologiya</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>Qeydiyyatdan keçmək lazımdır</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>Tarix</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>Istifadəçi GDPR stil popups görmək lazımdır?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value> Slide</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Daxil ol</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>Sponsorlar</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>Şu anda sponsor deyil. Niyə ilk olmaq deyil!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>Sponsorlar siyahısı yükləyir</value>
</data>
<data name="Supporters" xml:space="preserve">
<value> Support</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Kateqoriya</value>
</data>
<data name="Total" xml:space="preserve">
<value>Ümumi</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>Tarix</value>
</data>
<data name="User" xml:space="preserve">
<value>Qadın</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>Verilmiş şəkil və konfrim şəkil döşməz</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>Bakı</value>
</data>
<data name="Warning" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Bakı</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>Invalid Gallery</value>
</data>
<data name="Accept" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="Action" xml:space="preserve">
<value>Proqram</value>
</data>
<data name="Actions" xml:space="preserve">
<value>Proqramlar</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>Tarix</value>
</data>
<data name="Audit" xml:space="preserve">
<value> Audit</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>Bütün gözəl baxışlar</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>Bütün gözəl baxışlar</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>Bir ziyaretçi cookies istifadə etdi</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>Yaradılıb</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>Yeni istifadəçi</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>Deleted xüsusi resurs</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>Xüsusi qurğu</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>Deleted gallery</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>Deleted istifadəçi</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>Bir backup qazandı</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>Qeyd olunan giriş proqramı</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>Qeydiyyatdan keçirilmiş giriş proqramları sayı sıfırlandı</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>Satışdan keçin</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value> approved in</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value> deleted in</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value> rejected in</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>Necə çox logs</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Qalereya</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>Audit siyahısı almaq üçün</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>Logged out</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>Audit Girişi</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>Onların hesabına çox kateqoriya</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>Doğru çox kateqoriya</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>Onların multi-faktor əsasını yeniləyin</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>İstifadəçi üçün çox kateqoriya</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>Domen adı qeydiyyatdan keçirt »</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>Axtarış</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>Gallery üçün yeniləndirilməsi</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>Pulsuz istifadəçi</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>Bakı</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>İstifadəçi</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>İstifadəçi</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>Bütün qalereyalar</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>Bakı</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>Daxil ol</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>Qeydiyyatdan keçin</value>
</data>
<data name="Clean" xml:space="preserve">
<value>Daxili</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>E-poçt ünvanı</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>Cookie təsdiq üçün bir audit mesajının qeydiyyatı</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>Bu saytdan istifadə etmək üçün əsas cookies istifadə etməyinizə razılaşırsınız. Daha çox tapmaq</value>
</data>
<data name="Create" xml:space="preserve">
<value>Yapon</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>Şu anda giriş deyil</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>Xüsusi Resurslar</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>Bu gallery silmək istəyirsiniz?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>Bu demo versiyasıdır. Bütün konfiqurasiya müxtəlif mühasibatçıları üçün təmiz bir slate təmin edir.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>Daxil olmaq</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>Qeydiyyatdan keçin</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>Qeydiyyatdan istifadə etmək. gizli əsas qeyd edildi</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>Gallery yeniləndirilməsi</value>
</data>
@@ -251,7 +389,7 @@
<value>Daxil əsas daxil edin.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>qoca</value>
<value>Burada gizli əsas</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>Sərgilərin maksimum xidmət nömrələrinə çatdı</value>
@@ -329,7 +467,7 @@
<value>Qeydiyyatdan istifadə edin.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Qeydiyyat</value>
<value>Ad Soyad</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Daxil ol</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>Max fayl ölçüsü</value>
</data>
<data name="Members" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>2FA qəbul edilməsi</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value> Re</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>Proqram</value>
</data>
<data name="Rename" xml:space="preserve">
<value>Ad Soyad</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>Yeni Tab Linklər</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>Qalereya</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value> Logo</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>Neçə sərgilər istifadəçilər yaratmaq üçün imkan verir</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>Daxili qaynaq</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value> The and and and</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>Ümumi</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>CookiePolicy info səhifənin göstərilməsi üçün məlumat</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>Xüsusi Cookie Policy</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>Xüsusi Siyasətlər</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>Sığorta almaq</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>QR kodu</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>QR kodu ekran dili deyil</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Əməkdaşlıq</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value> gallery A at</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>Gizli Keyf</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>Istifadəçi filtr və qrup media edə bilər?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>Filologiya</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>Qeydiyyatdan keçmək lazımdır</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>Tarix</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>Istifadəçi GDPR stil popups görmək lazımdır?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value> Slide</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Daxil ol</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>Sponsorlar</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>Şu anda sponsor deyil. Niyə ilk olmaq deyil!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>Sponsorlar siyahısı yükləyir</value>
</data>
<data name="Supporters" xml:space="preserve">
<value> Support</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Kateqoriya</value>
</data>
<data name="Total" xml:space="preserve">
<value>Ümumi</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>Tarix</value>
</data>
<data name="User" xml:space="preserve">
<value>Qadın</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>Verilmiş şəkil və konfrim şəkil döşməz</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>Bakı</value>
</data>
<data name="Warning" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Bakı</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>Invalid Gallery</value>
</data>
<data name="Accept" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="Action" xml:space="preserve">
<value>Proqram</value>
</data>
<data name="Actions" xml:space="preserve">
<value>Proqramlar</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>Tarix</value>
</data>
<data name="Audit" xml:space="preserve">
<value> Audit</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>Bütün gözəl baxışlar</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>Bütün gözəl baxışlar</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>Bir ziyaretçi cookies istifadə etdi</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>Yaradılıb</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>Yeni istifadəçi</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>Deleted xüsusi resurs</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>Xüsusi qurğu</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>Deleted gallery</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>Deleted istifadəçi</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>Bir backup qazandı</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>Qeyd olunan giriş proqramı</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>Qeydiyyatdan keçirilmiş giriş proqramları sayı sıfırlandı</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>Satışdan keçin</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value> approved in</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value> deleted in</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value> rejected in</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>Necə çox logs</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Qalereya</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>Audit siyahısı almaq üçün</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>Logged out</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>Audit Girişi</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>Onların hesabına çox kateqoriya</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>Doğru çox kateqoriya</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>Onların multi-faktor əsasını yeniləyin</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>İstifadəçi üçün çox kateqoriya</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>Domen adı qeydiyyatdan keçirt »</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>Axtarış</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>Gallery üçün yeniləndirilməsi</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>Pulsuz istifadəçi</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>Bakı</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>İstifadəçi</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>İstifadəçi</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>Bütün qalereyalar</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>Bakı</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>Daxil ol</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>Qeydiyyatdan keçin</value>
</data>
<data name="Clean" xml:space="preserve">
<value>Daxili</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>E-poçt ünvanı</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>Cookie təsdiq üçün bir audit mesajının qeydiyyatı</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>Bu saytdan istifadə etmək üçün əsas cookies istifadə etməyinizə razılaşırsınız. Daha çox tapmaq</value>
</data>
<data name="Create" xml:space="preserve">
<value>Yapon</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>Şu anda giriş deyil</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>Xüsusi Resurslar</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>Bu gallery silmək istəyirsiniz?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>Bu demo versiyasıdır. Bütün konfiqurasiya müxtəlif mühasibatçıları üçün təmiz bir slate təmin edir.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>Daxil olmaq</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>Qeydiyyatdan keçin</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>Qeydiyyatdan istifadə etmək. gizli əsas qeyd edildi</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>Gallery yeniləndirilməsi</value>
</data>
@@ -251,7 +389,7 @@
<value>Daxil əsas daxil edin.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>qoca</value>
<value>Burada gizli əsas</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>Sərgilərin maksimum xidmət nömrələrinə çatdı</value>
@@ -329,7 +467,7 @@
<value>Qeydiyyatdan istifadə edin.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Qeydiyyat</value>
<value>Ad Soyad</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Daxil ol</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>Max fayl ölçüsü</value>
</data>
<data name="Members" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>2FA qəbul edilməsi</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value> Re</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>Proqram</value>
</data>
<data name="Rename" xml:space="preserve">
<value>Ad Soyad</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>Yeni Tab Linklər</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>Qalereya</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value> Logo</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>Neçə sərgilər istifadəçilər yaratmaq üçün imkan verir</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>Daxili qaynaq</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value> The and and and</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>Ümumi</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>CookiePolicy info səhifənin göstərilməsi üçün məlumat</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>Xüsusi Cookie Policy</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>Xüsusi Siyasətlər</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>Sığorta almaq</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>QR kodu</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>QR kodu ekran dili deyil</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Əməkdaşlıq</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value> gallery A at</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>Gizli Keyf</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>Istifadəçi filtr və qrup media edə bilər?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>Filologiya</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>Qeydiyyatdan keçmək lazımdır</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>Tarix</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>Istifadəçi GDPR stil popups görmək lazımdır?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value> Slide</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Daxil ol</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>Sponsorlar</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>Şu anda sponsor deyil. Niyə ilk olmaq deyil!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>Sponsorlar siyahısı yükləyir</value>
</data>
<data name="Supporters" xml:space="preserve">
<value> Support</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Kateqoriya</value>
</data>
<data name="Total" xml:space="preserve">
<value>Ümumi</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>Tarix</value>
</data>
<data name="User" xml:space="preserve">
<value>Qadın</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>Verilmiş şəkil və konfrim şəkil döşməz</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>Bakı</value>
</data>
<data name="Warning" xml:space="preserve">
<value>Qeydiyyat</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Bakı</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>Невалидна галерия</value>
</data>
<data name="Accept" xml:space="preserve">
<value>Приемане</value>
</data>
<data name="Action" xml:space="preserve">
<value>Действие</value>
</data>
<data name="Actions" xml:space="preserve">
<value>Действия</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>Одобрен</value>
</data>
<data name="Audit" xml:space="preserve">
<value>Одит</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>Bulk одобри всички висящи прегледи</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>Bulk отхвърли всички висящи прегледи</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>Посетител е одобрил използването на бисквитки</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>Създадена галерия</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>Създаване на нов потребител</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>Изтриване на потребителски ресурс</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>Качен персонализиран ресурс</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>Изтрита галерия</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>Изтрит потребител</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>Експортиране на резервно копие</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>Неуспешен опит за влизане</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>Грешка при запис</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>Замразен потребител</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>Внос на резервно копие</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>одобрен в галерия</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>изтрито в галерия</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>отхвърлени в галерия</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>Колко дневника да покажа</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Граници</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>Грешка при получаване на одитен списък</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>Изходен</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>Отчети за одита</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>Добавен е многофактор към тяхната сметка</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>Приложен коректен множителен символ</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>Рестартиране на техния многофакторен ключ</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Рестартиране на многофактора за потребителя</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>Филтриране на трупи въз основа на термин за търсене</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>Термин за търсене</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>Обновена настройка за галерия</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>Размразен потребител</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>Обновена галерия</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>Обновен потребител</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>Потребителят влезе</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>Изтрити всички галерии</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>Изтрита галерия</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>Налични галерии</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>Грешка при проверка на състоянието на сметката</value>
</data>
<data name="Clean" xml:space="preserve">
<value>Чисто</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>Затваряне</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>Моля, свържете се с администратор на сайта, за да предоставите достъп</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>Грешка при запис на одитно съобщение за одобрение на бисквитки</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>Политика за бисквитки</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>С използването на този уебсайт Вие се съгласявате с използването на основните бисквитки в съответствие с нашите условия за използване на бисквитки. За да разберете повече, моля вижте нашия</value>
</data>
<data name="Create" xml:space="preserve">
<value>Създаване</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>В момента нямате достъп</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>Потребителски ресурси</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>Сигурен ли си, че искаш да изтриеш галерията?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>Това е демо версия. Цялата конфигурация периодично се изтрива, за да се осигури ново начало за бъдещите тестери.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>Извършване на разрушително действие</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>Грешка при изтегляне на галерията</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>Грешка при изтегляне на галерията. Тайният ключ беше невалиден</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>Грешка при обновяване на галерията</value>
</data>
@@ -251,7 +389,7 @@
<value>Моля, въведете тайния ключ.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>сватбен ден</value>
<value>Въведете таен ключ тук</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>Достигнат е максималния позволен брой галерии</value>
@@ -329,7 +467,7 @@
<value>Моля, въведете потребителско име на акаунта.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Администратор</value>
<value>Потребител</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Изход</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>Максимален размер на файла</value>
</data>
<data name="Members" xml:space="preserve">
<value>Членове</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>Грешка при създаване на 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Отхвърляне</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>Версия за освобождаване</value>
</data>
<data name="Rename" xml:space="preserve">
<value>Преименуване</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>Нов подпрозорец</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>Иконата да се покаже в заглавни части и раздели</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>Лого</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>Колко галерии имат право да създават</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>Резолюция на палеца</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>Името да се покаже в заглавни части и раздели</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>Заглавие</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>Съдържанието на страницата с информация за CookiePolicy</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>Потребителска политика за бисквитки</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>Потребителски политики</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>Грешка при получаване на настройките</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>Показване на QR код</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>Ако QR кодът посочи езика на дисплея</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Включване на културата в QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>Цитат за показване в горната част на галерията</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>Тайен ключ</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>Трябва ли потребителят да може да филтрира и групира медия?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>Показване на филтрите</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>Ако гостите имат право да качват предмети</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>Тема</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>Трябва ли потребителят да види изскачащи GDPR стилове?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Включване</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Слайдшоу</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Използване</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>Спонсори</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>Понастоящем няма спонсори. Защо не станеш първият!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>Грешка при зареждане на списъка със спонсори</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>Поддръжници</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Времеви печат</value>
</data>
<data name="Total" xml:space="preserve">
<value>Общо</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>Качване</value>
</data>
<data name="User" xml:space="preserve">
<value>Потребител</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>Предоставената парола и конфрим парола не съвпадат</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>Посещение</value>
</data>
<data name="Warning" xml:space="preserve">
<value>Предупреждение</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Изтриване</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>Невалидна галерия</value>
</data>
<data name="Accept" xml:space="preserve">
<value>Приемане</value>
</data>
<data name="Action" xml:space="preserve">
<value>Действие</value>
</data>
<data name="Actions" xml:space="preserve">
<value>Действия</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>Одобрен</value>
</data>
<data name="Audit" xml:space="preserve">
<value>Одит</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>Bulk одобри всички висящи прегледи</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>Bulk отхвърли всички висящи прегледи</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>Посетител е одобрил използването на бисквитки</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>Създадена галерия</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>Създаване на нов потребител</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>Изтриване на потребителски ресурс</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>Качен персонализиран ресурс</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>Изтрита галерия</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>Изтрит потребител</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>Експортиране на резервно копие</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>Неуспешен опит за влизане</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>Грешка при запис</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>Замразен потребител</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>Внос на резервно копие</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>одобрен в галерия</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>изтрито в галерия</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>отхвърлени в галерия</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>Колко дневника да покажа</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Граници</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>Грешка при получаване на одитен списък</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>Изходен</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>Отчети за одита</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>Добавен е многофактор към тяхната сметка</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>Приложен коректен множителен символ</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>Рестартиране на техния многофакторен ключ</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Рестартиране на многофактора за потребителя</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>Филтриране на трупи въз основа на термин за търсене</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>Термин за търсене</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>Обновена настройка за галерия</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>Размразен потребител</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>Обновена галерия</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>Обновен потребител</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>Потребителят влезе</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>Изтрити всички галерии</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>Изтрита галерия</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>Налични галерии</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>Грешка при проверка на състоянието на сметката</value>
</data>
<data name="Clean" xml:space="preserve">
<value>Чисто</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>Затваряне</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>Моля, свържете се с администратор на сайта, за да предоставите достъп</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>Грешка при запис на одитно съобщение за одобрение на бисквитки</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>Политика за бисквитки</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>С използването на този уебсайт Вие се съгласявате с използването на основните бисквитки в съответствие с нашите условия за използване на бисквитки. За да разберете повече, моля вижте нашия</value>
</data>
<data name="Create" xml:space="preserve">
<value>Създаване</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>В момента нямате достъп</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>Потребителски ресурси</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>Сигурен ли си, че искаш да изтриеш галерията?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>Това е демо версия. Цялата конфигурация периодично се изтрива, за да се осигури ново начало за бъдещите тестери.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>Извършване на разрушително действие</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>Грешка при изтегляне на галерията</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>Грешка при изтегляне на галерията. Тайният ключ беше невалиден</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>Грешка при обновяване на галерията</value>
</data>
@@ -251,7 +389,7 @@
<value>Моля, въведете тайния ключ.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>сватбен ден</value>
<value>Въведете таен ключ тук</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>Достигнат е максималния позволен брой галерии</value>
@@ -329,7 +467,7 @@
<value>Моля, въведете потребителско име на акаунта.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Администратор</value>
<value>Потребител</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Изход</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>Максимален размер на файла</value>
</data>
<data name="Members" xml:space="preserve">
<value>Членове</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>Грешка при създаване на 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Отхвърляне</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>Версия за освобождаване</value>
</data>
<data name="Rename" xml:space="preserve">
<value>Преименуване</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>Нов подпрозорец</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>Иконата да се покаже в заглавни части и раздели</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>Лого</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>Колко галерии имат право да създават</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>Резолюция на палеца</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>Името да се покаже в заглавни части и раздели</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>Заглавие</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>Съдържанието на страницата с информация за CookiePolicy</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>Потребителска политика за бисквитки</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>Потребителски политики</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>Грешка при получаване на настройките</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>Показване на QR код</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>Ако QR кодът посочи езика на дисплея</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Включване на културата в QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>Цитат за показване в горната част на галерията</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>Тайен ключ</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>Трябва ли потребителят да може да филтрира и групира медия?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>Показване на филтрите</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>Ако гостите имат право да качват предмети</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>Тема</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>Трябва ли потребителят да види изскачащи GDPR стилове?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Включване</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Слайдшоу</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Използване</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>Спонсори</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>Понастоящем няма спонсори. Защо не станеш първият!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>Грешка при зареждане на списъка със спонсори</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>Поддръжници</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Времеви печат</value>
</data>
<data name="Total" xml:space="preserve">
<value>Общо</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>Качване</value>
</data>
<data name="User" xml:space="preserve">
<value>Потребител</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>Предоставената парола и конфрим парола не съвпадат</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>Посещение</value>
</data>
<data name="Warning" xml:space="preserve">
<value>Предупреждение</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Изтриване</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>গ্যালারি বৈধ নয়</value>
</data>
<data name="Accept" xml:space="preserve">
<value>গ্রহণ করুন</value>
</data>
<data name="Action" xml:space="preserve">
<value>কাজ</value>
</data>
<data name="Actions" xml:space="preserve">
<value>কাজ</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>অনুমোদিত</value>
</data>
<data name="Audit" xml:space="preserve">
<value>তালিকা</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>কালো সবার পর্যালোচনা অনুমোদন</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>Ked সকল অপেক্ষমান পর্যালোচনা প্রত্যাখ্যান করেছে</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>একজন অতিথি কুকির ব্যবহার অনুমোদন করেছেন</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>সংকলন নির্মাণ ব্যবস্থা</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>নতুন ব্যবহারকারী তৈরি করেছেন</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>মুছে ফেলা স্বনির্ধারিত রিসোর্স</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>আপলোড করা স্বনির্ধারিত রিসোর্স</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>মুছে ফেলা গ্যালারি</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>মুছে ফেলা হয়েছে</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>ব্যাক-আপ সম্পন্ন</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>লগ-ইন ব্যর্থ</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>লগ-ইন প্রচেষ্টার প্রয়াস করতে ব্যর্থ</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>Zoy ব্যবহারকারী</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>একটি ব্যাক-আপ ইম্পোর্ট করুন</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>গ্যালারিতে অনুমোদন</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>গ্যালারিতে মুছে ফেলা হয়েছে</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>গ্যালারির মধ্যে পরিত্যাগ করা হয়েছে</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>লগ প্রদর্শনের জন্য একটি ফন্ট</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>সীমা</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>লিস্টের তালিকা প্রাপ্ত করতে ব্যর্থ</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>লগ-ইন করা হয়েছে</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>আওয়াজ</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>তাদের অ্যাকাউন্টের সাথে যুক্ত একাধিক- এজন্য</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>সঠিক টোকেনসহ স্বাক্ষর</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>তাদের একাধিক কি পুনরায় নির্ধারণ করুন</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>ব্যবহারকারীর জন্য মাল্টি- রহমত পুনরায় নির্ধারণ করুন</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>অনুসন্ধানের ফিল্টার সহযোগে ফিল্টার করা হবে</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>অনুসন্ধানের স্থান</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>সংকলনের বৈশিষ্ট্য আপডেট করা হয়েছে</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>ব্যবহারকারীর দ্বারা নির্ধারিত নয়</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>আপডেট করা গ্যালারি</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>ব্যবহারকারী আপডেট করা হয়েছে</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>ব্যবহারকারী লগ-ইন করেছেন</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>সম ্ মানিত আমল লেখকগণ</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>গ্যালারি নির্মাণ করা হয়েছে</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>উপলব্ধ নথিপত্র</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>অ্যাকাউন্ট সন্ধান করতে ব্যর্থ</value>
</data>
<data name="Clean" xml:space="preserve">
<value>পরিশ্রুত</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>বন্ধ</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>অনুগ্রহ করে সহায়তার জন্য একটি সাইট নির্বাচন করুন</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>কুকি অনুমোদনের জন্য অডিট করতে ব্যর্থ</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>কুকি সংক্রান্ত নিয়ম</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>এই ওয়েবসাইট ব্যবহার করে আপনি কুকি ব্যবহারের শর্ত অনুযায়ী আমাদের মূল কুকি ব্যবহার করতে রাজি আছেন। আরো জানার জন্য দয়া করে আমাদের দৃশ্য দেখুন</value>
</data>
<data name="Create" xml:space="preserve">
<value>তৈরি করুন (_r)</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>আপনি বর্তমানে ব্যবহার করেননি</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>স্বনির্বাচিত রিসোর্স</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>আপনি কি নিশ্চিতরূপে এই গ্যালারিটি মুছে ফেলতে ইচ্ছুক?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>এটি একটি ডেমো সংস্করণ। সকল কনফিগারেশন ভবিষ্যৎ পরীক্ষার জন্য পরিষ্কারকরণ নিশ্চিত করার জন্য সংরক্ষণ করা হয়েছে।.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>তালিকাবদ্ধ কাজ</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>সংকলন ডাউনলোড করতে ব্যর্থ</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>গ্যালারি ডাউনলোড করতে ব্যর্থ। গুপ্ত কী অবৈধ</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>সংকলন আপডেট করতে ব্যর্থ</value>
</data>
@@ -251,7 +389,7 @@
<value>অনুগ্রহ করে গোপনীয় কি সন্নিবেশ করুন.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>বিয়ের দিন</value>
<value>সিকিউর শেল কি লিখুন</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>সর্বোচ্চ সংখ্যক কলামের সংখ্যা পৌঁছেছে</value>
@@ -329,7 +467,7 @@
<value>অনুগ্রহ করে অ্যাকাউন্টের নাম লিখুন।.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>্যাডমিন</value>
<value>্যবহারকারীর নাম</value>
</data>
<data name="Logout" xml:space="preserve">
<value>লগ-আউট করুন</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>ফাইলের সর্বাধিক মাপ</value>
</data>
<data name="Members" xml:space="preserve">
<value>সদস্য</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>পরিচয় নির্ধারণ করতে ব্যর্থ</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>বাতিল</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>রিলিজ সংস্করণ</value>
</data>
<data name="Rename" xml:space="preserve">
<value>পুনরায় নামকরণ</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>নতুন ট্যাবের লিংক</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>হেডার ও ট্যাবের মধ্যে প্রদর্শিত আইকন</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>প্রতীকচিহ্ন</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>অসংখ্য গ্যালারি তৈরি করার অনুমতি রয়েছে</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>থাম্ব-নেইল রেসোলিউশন</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>হেডারের মধ্যে প্রদর্শনযোগ্য নাম ও ট্যাবের নাম</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>শিরোনাম</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>কুকি সংক্রান্ত তথ্য প্রদর্শন করার জন্য চিহ্নিত বিষয়বস্তু</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>স্বনির্বাচিত কুকি পলিসি</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>স্বনির্ধারিত নীতি</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>বৈশিষ্ট্য প্রাপ্ত করতে ব্যর্থ</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>তারিখ প্রদর্শন করো (প)</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>ভুল কোড উল্লিখিত হলে তা উল্লেখ করা হবে</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>QROP এর মধ্যে সংস্কৃতি অন্তর্ভুক্ত করুন</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>সংকলনের উপরের অংশে প্রদর্শন করার উদ্দেশ্যে একটি উদ্ধৃতি</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>গোপনীয় কি</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>ব্যবহারকারী কি ফিল্টার ও দলগুলোকে মিডিয়া করতে ইচ্ছুক?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>ফিল্টার দেখাও</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>আপলোড করার জন্য অতিথিকে অনুমতি প্রদান করা হবে</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>বিষয়</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>ব্যবহারকারীদের কি দেশাত্ম্যতার পপ-আপ প্রদর্শন করা হবে?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>সক্রিয়</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>স্লাইড-শো</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>ব্যবহার প্রণালী</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>নিক্তি</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>বর্তমানে কোনো স্পন্সর নেই। কেন তুমি প্রথম হওনি!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>স্পনের তালিকা লোড করতে ব্যর্থ</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>Hula সহায়তা</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>সময়</value>
</data>
<data name="Total" xml:space="preserve">
<value>সর্বমোট</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>আপলোডার</value>
</data>
<data name="User" xml:space="preserve">
<value>ব্যবহারকারী</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>পাসওয়ার্ড ও dconf পাসওয়ার্ড মিলছে না</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>পরিদর্শন করুন</value>
</data>
<data name="Warning" xml:space="preserve">
<value>সতর্কবার্তা</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>ওয়াইপে</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>গ্যালারি বৈধ নয়</value>
</data>
<data name="Accept" xml:space="preserve">
<value>গ্রহণ করুন</value>
</data>
<data name="Action" xml:space="preserve">
<value>কাজ</value>
</data>
<data name="Actions" xml:space="preserve">
<value>কাজ</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>অনুমোদিত</value>
</data>
<data name="Audit" xml:space="preserve">
<value>তালিকা</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>কালো সবার পর্যালোচনা অনুমোদন</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>Ked সকল অপেক্ষমান পর্যালোচনা প্রত্যাখ্যান করেছে</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>একজন অতিথি কুকির ব্যবহার অনুমোদন করেছেন</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>সংকলন নির্মাণ ব্যবস্থা</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>নতুন ব্যবহারকারী তৈরি করেছেন</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>মুছে ফেলা স্বনির্ধারিত রিসোর্স</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>আপলোড করা স্বনির্ধারিত রিসোর্স</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>মুছে ফেলা গ্যালারি</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>মুছে ফেলা হয়েছে</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>ব্যাক-আপ সম্পন্ন</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>লগ-ইন ব্যর্থ</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>লগ-ইন প্রচেষ্টার প্রয়াস করতে ব্যর্থ</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>Zoy ব্যবহারকারী</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>একটি ব্যাক-আপ ইম্পোর্ট করুন</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>গ্যালারিতে অনুমোদন</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>গ্যালারিতে মুছে ফেলা হয়েছে</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>গ্যালারির মধ্যে পরিত্যাগ করা হয়েছে</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>লগ প্রদর্শনের জন্য একটি ফন্ট</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>সীমা</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>লিস্টের তালিকা প্রাপ্ত করতে ব্যর্থ</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>লগ-ইন করা হয়েছে</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>আওয়াজ</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>তাদের অ্যাকাউন্টের সাথে যুক্ত একাধিক- এজন্য</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>সঠিক টোকেনসহ স্বাক্ষর</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>তাদের একাধিক কি পুনরায় নির্ধারণ করুন</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>ব্যবহারকারীর জন্য মাল্টি- রহমত পুনরায় নির্ধারণ করুন</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>অনুসন্ধানের ফিল্টার সহযোগে ফিল্টার করা হবে</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>অনুসন্ধানের স্থান</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>সংকলনের বৈশিষ্ট্য আপডেট করা হয়েছে</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>ব্যবহারকারীর দ্বারা নির্ধারিত নয়</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>আপডেট করা গ্যালারি</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>ব্যবহারকারী আপডেট করা হয়েছে</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>ব্যবহারকারী লগ-ইন করেছেন</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>সম ্ মানিত আমল লেখকগণ</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>গ্যালারি নির্মাণ করা হয়েছে</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>উপলব্ধ নথিপত্র</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>অ্যাকাউন্ট সন্ধান করতে ব্যর্থ</value>
</data>
<data name="Clean" xml:space="preserve">
<value>পরিশ্রুত</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>বন্ধ</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>অনুগ্রহ করে সহায়তার জন্য একটি সাইট নির্বাচন করুন</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>কুকি অনুমোদনের জন্য অডিট করতে ব্যর্থ</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>কুকি সংক্রান্ত নিয়ম</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>এই ওয়েবসাইট ব্যবহার করে আপনি কুকি ব্যবহারের শর্ত অনুযায়ী আমাদের মূল কুকি ব্যবহার করতে রাজি আছেন। আরো জানার জন্য দয়া করে আমাদের দৃশ্য দেখুন</value>
</data>
<data name="Create" xml:space="preserve">
<value>তৈরি করুন (_r)</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>আপনি বর্তমানে ব্যবহার করেননি</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>স্বনির্বাচিত রিসোর্স</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>আপনি কি নিশ্চিতরূপে এই গ্যালারিটি মুছে ফেলতে ইচ্ছুক?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>এটি একটি ডেমো সংস্করণ। সকল কনফিগারেশন ভবিষ্যৎ পরীক্ষার জন্য পরিষ্কারকরণ নিশ্চিত করার জন্য সংরক্ষণ করা হয়েছে।.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>তালিকাবদ্ধ কাজ</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>সংকলন ডাউনলোড করতে ব্যর্থ</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>গ্যালারি ডাউনলোড করতে ব্যর্থ। গুপ্ত কী অবৈধ</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>সংকলন আপডেট করতে ব্যর্থ</value>
</data>
@@ -251,7 +389,7 @@
<value>অনুগ্রহ করে গোপনীয় কি সন্নিবেশ করুন.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>বিয়ের দিন</value>
<value>সিকিউর শেল কি লিখুন</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>সর্বোচ্চ সংখ্যক কলামের সংখ্যা পৌঁছেছে</value>
@@ -329,7 +467,7 @@
<value>অনুগ্রহ করে অ্যাকাউন্টের নাম লিখুন।.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>্যাডমিন</value>
<value>্যবহারকারীর নাম</value>
</data>
<data name="Logout" xml:space="preserve">
<value>লগ-আউট করুন</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>ফাইলের সর্বাধিক মাপ</value>
</data>
<data name="Members" xml:space="preserve">
<value>সদস্য</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>পরিচয় নির্ধারণ করতে ব্যর্থ</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>বাতিল</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>রিলিজ সংস্করণ</value>
</data>
<data name="Rename" xml:space="preserve">
<value>পুনরায় নামকরণ</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>নতুন ট্যাবের লিংক</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>হেডার ও ট্যাবের মধ্যে প্রদর্শিত আইকন</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>প্রতীকচিহ্ন</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>অসংখ্য গ্যালারি তৈরি করার অনুমতি রয়েছে</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>থাম্ব-নেইল রেসোলিউশন</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>হেডারের মধ্যে প্রদর্শনযোগ্য নাম ও ট্যাবের নাম</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>শিরোনাম</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>কুকি সংক্রান্ত তথ্য প্রদর্শন করার জন্য চিহ্নিত বিষয়বস্তু</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>স্বনির্বাচিত কুকি পলিসি</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>স্বনির্ধারিত নীতি</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>বৈশিষ্ট্য প্রাপ্ত করতে ব্যর্থ</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>তারিখ প্রদর্শন করো (প)</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>ভুল কোড উল্লিখিত হলে তা উল্লেখ করা হবে</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>QROP এর মধ্যে সংস্কৃতি অন্তর্ভুক্ত করুন</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>সংকলনের উপরের অংশে প্রদর্শন করার উদ্দেশ্যে একটি উদ্ধৃতি</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>গোপনীয় কি</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>ব্যবহারকারী কি ফিল্টার ও দলগুলোকে মিডিয়া করতে ইচ্ছুক?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>ফিল্টার দেখাও</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>আপলোড করার জন্য অতিথিকে অনুমতি প্রদান করা হবে</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>বিষয়</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>ব্যবহারকারীদের কি দেশাত্ম্যতার পপ-আপ প্রদর্শন করা হবে?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>সক্রিয়</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>স্লাইড-শো</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>ব্যবহার প্রণালী</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>নিক্তি</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>বর্তমানে কোনো স্পন্সর নেই। কেন তুমি প্রথম হওনি!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>স্পনের তালিকা লোড করতে ব্যর্থ</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>Hula সহায়তা</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>সময়</value>
</data>
<data name="Total" xml:space="preserve">
<value>সর্বমোট</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>আপলোডার</value>
</data>
<data name="User" xml:space="preserve">
<value>ব্যবহারকারী</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>পাসওয়ার্ড ও dconf পাসওয়ার্ড মিলছে না</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>পরিদর্শন করুন</value>
</data>
<data name="Warning" xml:space="preserve">
<value>সতর্কবার্তা</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>ওয়াইপে</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>গ্যালারি বৈধ নয়</value>
</data>
<data name="Accept" xml:space="preserve">
<value>গ্রহণ করুন</value>
</data>
<data name="Action" xml:space="preserve">
<value>কাজ</value>
</data>
<data name="Actions" xml:space="preserve">
<value>কাজ</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>অনুমোদিত</value>
</data>
<data name="Audit" xml:space="preserve">
<value>তালিকা</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>কালো সবার পর্যালোচনা অনুমোদন</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>Ked সকল অপেক্ষমান পর্যালোচনা প্রত্যাখ্যান করেছে</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>একজন অতিথি কুকির ব্যবহার অনুমোদন করেছেন</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>সংকলন নির্মাণ ব্যবস্থা</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>নতুন ব্যবহারকারী তৈরি করেছেন</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>মুছে ফেলা স্বনির্ধারিত রিসোর্স</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>আপলোড করা স্বনির্ধারিত রিসোর্স</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>মুছে ফেলা গ্যালারি</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>মুছে ফেলা হয়েছে</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>ব্যাক-আপ সম্পন্ন</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>লগ-ইন ব্যর্থ</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>লগ-ইন প্রচেষ্টার প্রয়াস করতে ব্যর্থ</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>Zoy ব্যবহারকারী</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>একটি ব্যাক-আপ ইম্পোর্ট করুন</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>গ্যালারিতে অনুমোদন</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>গ্যালারিতে মুছে ফেলা হয়েছে</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>গ্যালারির মধ্যে পরিত্যাগ করা হয়েছে</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>লগ প্রদর্শনের জন্য একটি ফন্ট</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>সীমা</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>লিস্টের তালিকা প্রাপ্ত করতে ব্যর্থ</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>লগ-ইন করা হয়েছে</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>আওয়াজ</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>তাদের অ্যাকাউন্টের সাথে যুক্ত একাধিক- এজন্য</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>সঠিক টোকেনসহ স্বাক্ষর</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>তাদের একাধিক কি পুনরায় নির্ধারণ করুন</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>ব্যবহারকারীর জন্য মাল্টি- রহমত পুনরায় নির্ধারণ করুন</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>অনুসন্ধানের ফিল্টার সহযোগে ফিল্টার করা হবে</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>অনুসন্ধানের স্থান</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>সংকলনের বৈশিষ্ট্য আপডেট করা হয়েছে</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>ব্যবহারকারীর দ্বারা নির্ধারিত নয়</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>আপডেট করা গ্যালারি</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>ব্যবহারকারী আপডেট করা হয়েছে</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>ব্যবহারকারী লগ-ইন করেছেন</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>সম ্ মানিত আমল লেখকগণ</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>গ্যালারি নির্মাণ করা হয়েছে</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>উপলব্ধ নথিপত্র</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>অ্যাকাউন্ট সন্ধান করতে ব্যর্থ</value>
</data>
<data name="Clean" xml:space="preserve">
<value>পরিশ্রুত</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>বন্ধ</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>অনুগ্রহ করে সহায়তার জন্য একটি সাইট নির্বাচন করুন</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>কুকি অনুমোদনের জন্য অডিট করতে ব্যর্থ</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>কুকি সংক্রান্ত নিয়ম</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>এই ওয়েবসাইট ব্যবহার করে আপনি কুকি ব্যবহারের শর্ত অনুযায়ী আমাদের মূল কুকি ব্যবহার করতে রাজি আছেন। আরো জানার জন্য দয়া করে আমাদের দৃশ্য দেখুন</value>
</data>
<data name="Create" xml:space="preserve">
<value>তৈরি করুন (_r)</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>আপনি বর্তমানে ব্যবহার করেননি</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>স্বনির্বাচিত রিসোর্স</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>আপনি কি নিশ্চিতরূপে এই গ্যালারিটি মুছে ফেলতে ইচ্ছুক?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>এটি একটি ডেমো সংস্করণ। সকল কনফিগারেশন ভবিষ্যৎ পরীক্ষার জন্য পরিষ্কারকরণ নিশ্চিত করার জন্য সংরক্ষণ করা হয়েছে।.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>তালিকাবদ্ধ কাজ</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>সংকলন ডাউনলোড করতে ব্যর্থ</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>গ্যালারি ডাউনলোড করতে ব্যর্থ। গুপ্ত কী অবৈধ</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>সংকলন আপডেট করতে ব্যর্থ</value>
</data>
@@ -251,7 +389,7 @@
<value>অনুগ্রহ করে গোপনীয় কি সন্নিবেশ করুন.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>বিয়ের দিন</value>
<value>সিকিউর শেল কি লিখুন</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>সর্বোচ্চ সংখ্যক কলামের সংখ্যা পৌঁছেছে</value>
@@ -329,7 +467,7 @@
<value>অনুগ্রহ করে অ্যাকাউন্টের নাম লিখুন।.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>্যাডমিন</value>
<value>্যবহারকারীর নাম</value>
</data>
<data name="Logout" xml:space="preserve">
<value>লগ-আউট করুন</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>ফাইলের সর্বাধিক মাপ</value>
</data>
<data name="Members" xml:space="preserve">
<value>সদস্য</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>পরিচয় নির্ধারণ করতে ব্যর্থ</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>বাতিল</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>রিলিজ সংস্করণ</value>
</data>
<data name="Rename" xml:space="preserve">
<value>পুনরায় নামকরণ</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>নতুন ট্যাবের লিংক</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>হেডার ও ট্যাবের মধ্যে প্রদর্শিত আইকন</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>প্রতীকচিহ্ন</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>অসংখ্য গ্যালারি তৈরি করার অনুমতি রয়েছে</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>থাম্ব-নেইল রেসোলিউশন</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>হেডারের মধ্যে প্রদর্শনযোগ্য নাম ও ট্যাবের নাম</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>শিরোনাম</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>কুকি সংক্রান্ত তথ্য প্রদর্শন করার জন্য চিহ্নিত বিষয়বস্তু</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>স্বনির্বাচিত কুকি পলিসি</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>স্বনির্ধারিত নীতি</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>বৈশিষ্ট্য প্রাপ্ত করতে ব্যর্থ</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>তারিখ প্রদর্শন করো (প)</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>ভুল কোড উল্লিখিত হলে তা উল্লেখ করা হবে</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>QROP এর মধ্যে সংস্কৃতি অন্তর্ভুক্ত করুন</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>সংকলনের উপরের অংশে প্রদর্শন করার উদ্দেশ্যে একটি উদ্ধৃতি</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>গোপনীয় কি</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>ব্যবহারকারী কি ফিল্টার ও দলগুলোকে মিডিয়া করতে ইচ্ছুক?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>ফিল্টার দেখাও</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>আপলোড করার জন্য অতিথিকে অনুমতি প্রদান করা হবে</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>বিষয়</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>ব্যবহারকারীদের কি দেশাত্ম্যতার পপ-আপ প্রদর্শন করা হবে?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>সক্রিয়</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>স্লাইড-শো</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>ব্যবহার প্রণালী</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>নিক্তি</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>বর্তমানে কোনো স্পন্সর নেই। কেন তুমি প্রথম হওনি!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>স্পনের তালিকা লোড করতে ব্যর্থ</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>Hula সহায়তা</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>সময়</value>
</data>
<data name="Total" xml:space="preserve">
<value>সর্বমোট</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>আপলোডার</value>
</data>
<data name="User" xml:space="preserve">
<value>ব্যবহারকারী</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>পাসওয়ার্ড ও dconf পাসওয়ার্ড মিলছে না</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>পরিদর্শন করুন</value>
</data>
<data name="Warning" xml:space="preserve">
<value>সতর্কবার্তা</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>ওয়াইপে</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>Galeria no vàlida</value>
</data>
<data name="Accept" xml:space="preserve">
<value>Accepta</value>
</data>
<data name="Action" xml:space="preserve">
<value>Acció</value>
</data>
<data name="Actions" xml:space="preserve">
<value>Accions</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>Aprovada</value>
</data>
<data name="Audit" xml:space="preserve">
<value>Auditoria</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>Massa aprovat totes les revisions pendents</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>Massa rebutjat totes les revisions pendents</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>Un visitant ha aprovat l'ús de les galetesName</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>S' ha creat la galeria</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>S' ha creat un usuari nou</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>S' ha esborrat un recurs personalitzat</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>S' ha pujat un recurs personalitzat</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>S' ha esborrat la galeria</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>Eliminat d' usuari</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>S' ha exportat una còpia de seguretat</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>S' ha detectat un intent d' accés erroni</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>El comptador de intents d' accés ha fallat ha reiniciat</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>Usuari Froze</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>S' ha importat una còpia de seguretat</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>aprovada a la galeria</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>s' ha esborrat a la galeria</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>s' ha rebutjat a la galeria</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>Quants registres mostrar</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Límit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>Ha fallat en obtenir la llista d'auditories</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>S' ha desactivat</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>Registres d' auditoria</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>S' ha afegit un factor multi al seu compte</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>Testimoni multi- factor correcte</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>Reinicia la seva clau multi- factor</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reinicia el factor multi per a l' usuari</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>Filtra els registres basats en un terme de cerca</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>Terme de cerca</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>S' ha actualitzat l' arranjament de la galeria</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>Usuari unròze</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>S' ha actualitzat la galeria</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>Usuari actualitzat</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>S' ha connectat l' usuari</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>Esborrat totes les galeries</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>S' ha esborrat la galeria</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>Galleries disponibles</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>Ha fallat en comprovar l' estat del compte</value>
</data>
<data name="Clean" xml:space="preserve">
<value>Neteja</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>Tanca</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>Si us plau, contacteu amb un administrador del lloc web per proporcionar accés</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>Ha fallat en registrar un missatge d'auditori per aprovar galetes</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>Política de galetes</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>Utilitzant aquest lloc web estàs d'acord amb el nostre ús de galetes bàsiques d'acord amb els nostres termes d'ús de galeta. Per descobrir-ne més si us plau, mireu la nostra</value>
</data>
<data name="Create" xml:space="preserve">
<value>Crea</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>Actualment no teniu accés</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>Recursos personalitzats</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>Esteu segur que voleu esborrar aquesta galeria?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>Aquesta és una versió demo. Tota la configuració està periòdicament esborrada per assegurar una pissarra neta per als futurs exàmens.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>Acció obsoleta realitzada</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>Ha fallat en baixar la galeria</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>Ha fallat en baixar la galeria. La clau secreta no era vàlida</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>Ha fallat en actualitzar la galeria</value>
</data>
@@ -251,7 +389,7 @@
<value>Si us plau, introduïu la clau secreta.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>dia del casament@ info: whatsthis</value>
<value>Introduïu aquí la clau secreta</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>S' ha arribat al màxim nombre permès de galeries</value>
@@ -329,7 +467,7 @@
<value>Introduïu el nom d' usuari del compte.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Administrador</value>
<value>Nom d' usuari</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Surt</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>La mida màx. de fitxer és</value>
</data>
<data name="Members" xml:space="preserve">
<value>Membres</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>Ha fallat en establir la 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Rebutja</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>Versió de versió</value>
</data>
<data name="Rename" xml:space="preserve">
<value>Reanomena</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>Enllaços de pestanya nous</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>La icona per mostrar en capçaleres i pestanyes</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>Logotip</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>Quantes galeries poden crear els usuaris</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>Resolució de miniatures</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>El nom a mostrar en capçaleres i pestanyes</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>Títol</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>El contingut que s'ha de mostrar a la pàgina d'informació de galeta</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>Política de galetes personalitzada</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>Polítiques personalitzades</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>Ha fallat en obtenir l' arranjament</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>Mostra el codi QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>El codi QR especifica l' idioma del visor</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Inclou la cultura a QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>Una cita per mostrar a dalt de la galeria</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>Clau secreta</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>L' usuari hauria de filtrar i agrupar els suports?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>Mostra els filtres</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>Cal que els convidats pugin elements</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>Tema</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>L' usuari hauria de veure els emergents d' estil R del PIB?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Habilitat</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Passi de diapositives</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Ús</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>Espoons</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>Ara mateix no hi ha patrocinadors. Per què no et converteixes en el primer!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>Ha fallat en carregar la llista de patrocinadors</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>Suports</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Marca horària</value>
</data>
<data name="Total" xml:space="preserve">
<value>Total</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>Pujador</value>
</data>
<data name="User" xml:space="preserve">
<value>Usuari</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>La contrasenya i contrasenya proporcionada no coincideixen</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>Visiteu</value>
</data>
<data name="Warning" xml:space="preserve">
<value>Avís</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Esborrat</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>Galeria no vàlida</value>
</data>
<data name="Accept" xml:space="preserve">
<value>Accepta</value>
</data>
<data name="Action" xml:space="preserve">
<value>Acció</value>
</data>
<data name="Actions" xml:space="preserve">
<value>Accions</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>Aprovada</value>
</data>
<data name="Audit" xml:space="preserve">
<value>Auditoria</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>Massa aprovat totes les revisions pendents</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>Massa rebutjat totes les revisions pendents</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>Un visitant ha aprovat l'ús de les galetesName</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>S' ha creat la galeria</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>S' ha creat un usuari nou</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>S' ha esborrat un recurs personalitzat</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>S' ha pujat un recurs personalitzat</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>S' ha esborrat la galeria</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>Eliminat d' usuari</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>S' ha exportat una còpia de seguretat</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>S' ha detectat un intent d' accés erroni</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>El comptador de intents d' accés ha fallat ha reiniciat</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>Usuari Froze</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>S' ha importat una còpia de seguretat</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>aprovada a la galeria</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>s' ha esborrat a la galeria</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>s' ha rebutjat a la galeria</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>Quants registres mostrar</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Límit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>Ha fallat en obtenir la llista d'auditories</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>S' ha desactivat</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>Registres d' auditoria</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>S' ha afegit un factor multi al seu compte</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>Testimoni multi- factor correcte</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>Reinicia la seva clau multi- factor</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reinicia el factor multi per a l' usuari</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>Filtra els registres basats en un terme de cerca</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>Terme de cerca</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>S' ha actualitzat l' arranjament de la galeria</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>Usuari unròze</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>S' ha actualitzat la galeria</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>Usuari actualitzat</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>S' ha connectat l' usuari</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>Esborrat totes les galeries</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>S' ha esborrat la galeria</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>Galleries disponibles</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>Ha fallat en comprovar l' estat del compte</value>
</data>
<data name="Clean" xml:space="preserve">
<value>Neteja</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>Tanca</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>Si us plau, contacteu amb un administrador del lloc web per proporcionar accés</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>Ha fallat en registrar un missatge d'auditori per aprovar galetes</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>Política de galetes</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>Utilitzant aquest lloc web estàs d'acord amb el nostre ús de galetes bàsiques d'acord amb els nostres termes d'ús de galeta. Per descobrir-ne més si us plau, mireu la nostra</value>
</data>
<data name="Create" xml:space="preserve">
<value>Crea</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>Actualment no teniu accés</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>Recursos personalitzats</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>Esteu segur que voleu esborrar aquesta galeria?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>Aquesta és una versió demo. Tota la configuració està periòdicament esborrada per assegurar una pissarra neta per als futurs exàmens.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>Acció obsoleta realitzada</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>Ha fallat en baixar la galeria</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>Ha fallat en baixar la galeria. La clau secreta no era vàlida</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>Ha fallat en actualitzar la galeria</value>
</data>
@@ -251,7 +389,7 @@
<value>Si us plau, introduïu la clau secreta.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>dia del casament@ info: whatsthis</value>
<value>Introduïu aquí la clau secreta</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>S' ha arribat al màxim nombre permès de galeries</value>
@@ -329,7 +467,7 @@
<value>Introduïu el nom d' usuari del compte.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Administrador</value>
<value>Nom d' usuari</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Surt</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>La mida màx. de fitxer és</value>
</data>
<data name="Members" xml:space="preserve">
<value>Membres</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>Ha fallat en establir la 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Rebutja</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>Versió de versió</value>
</data>
<data name="Rename" xml:space="preserve">
<value>Reanomena</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>Enllaços de pestanya nous</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>La icona per mostrar en capçaleres i pestanyes</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>Logotip</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>Quantes galeries poden crear els usuaris</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>Resolució de miniatures</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>El nom a mostrar en capçaleres i pestanyes</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>Títol</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>El contingut que s'ha de mostrar a la pàgina d'informació de galeta</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>Política de galetes personalitzada</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>Polítiques personalitzades</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>Ha fallat en obtenir l' arranjament</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>Mostra el codi QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>El codi QR especifica l' idioma del visor</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Inclou la cultura a QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>Una cita per mostrar a dalt de la galeria</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>Clau secreta</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>L' usuari hauria de filtrar i agrupar els suports?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>Mostra els filtres</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>Cal que els convidats pugin elements</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>Tema</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>L' usuari hauria de veure els emergents d' estil R del PIB?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Habilitat</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Passi de diapositives</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Ús</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>Espoons</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>Ara mateix no hi ha patrocinadors. Per què no et converteixes en el primer!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>Ha fallat en carregar la llista de patrocinadors</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>Suports</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Marca horària</value>
</data>
<data name="Total" xml:space="preserve">
<value>Total</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>Pujador</value>
</data>
<data name="User" xml:space="preserve">
<value>Usuari</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>La contrasenya i contrasenya proporcionada no coincideixen</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>Visiteu</value>
</data>
<data name="Warning" xml:space="preserve">
<value>Avís</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Esborrat</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>Galeria no vàlida</value>
</data>
<data name="Accept" xml:space="preserve">
<value>Accepta</value>
</data>
<data name="Action" xml:space="preserve">
<value>Acció</value>
</data>
<data name="Actions" xml:space="preserve">
<value>Accions</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>Aprovada</value>
</data>
<data name="Audit" xml:space="preserve">
<value>Auditoria</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>Massa aprovat totes les revisions pendents</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>Massa rebutjat totes les revisions pendents</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>Un visitant ha aprovat l'ús de les galetesName</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>S' ha creat la galeria</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>S' ha creat un usuari nou</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>S' ha esborrat un recurs personalitzat</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>S' ha pujat un recurs personalitzat</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>S' ha esborrat la galeria</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>Eliminat d' usuari</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>S' ha exportat una còpia de seguretat</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>S' ha detectat un intent d' accés erroni</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>El comptador de intents d' accés ha fallat ha reiniciat</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>Usuari Froze</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>S' ha importat una còpia de seguretat</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>aprovada a la galeria</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>s' ha esborrat a la galeria</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>s' ha rebutjat a la galeria</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>Quants registres mostrar</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Límit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>Ha fallat en obtenir la llista d'auditories</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>S' ha desactivat</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>Registres d' auditoria</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>S' ha afegit un factor multi al seu compte</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>Testimoni multi- factor correcte</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>Reinicia la seva clau multi- factor</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reinicia el factor multi per a l' usuari</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>Filtra els registres basats en un terme de cerca</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>Terme de cerca</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>S' ha actualitzat l' arranjament de la galeria</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>Usuari unròze</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>S' ha actualitzat la galeria</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>Usuari actualitzat</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>S' ha connectat l' usuari</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>Esborrat totes les galeries</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>S' ha esborrat la galeria</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>Galleries disponibles</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>Ha fallat en comprovar l' estat del compte</value>
</data>
<data name="Clean" xml:space="preserve">
<value>Neteja</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>Tanca</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>Si us plau, contacteu amb un administrador del lloc web per proporcionar accés</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>Ha fallat en registrar un missatge d'auditori per aprovar galetes</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>Política de galetes</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>Utilitzant aquest lloc web estàs d'acord amb el nostre ús de galetes bàsiques d'acord amb els nostres termes d'ús de galeta. Per descobrir-ne més si us plau, mireu la nostra</value>
</data>
<data name="Create" xml:space="preserve">
<value>Crea</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>Actualment no teniu accés</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>Recursos personalitzats</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>Esteu segur que voleu esborrar aquesta galeria?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>Aquesta és una versió demo. Tota la configuració està periòdicament esborrada per assegurar una pissarra neta per als futurs exàmens.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>Acció obsoleta realitzada</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>Ha fallat en baixar la galeria</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>Ha fallat en baixar la galeria. La clau secreta no era vàlida</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>Ha fallat en actualitzar la galeria</value>
</data>
@@ -251,7 +389,7 @@
<value>Si us plau, introduïu la clau secreta.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>dia del casament@ info: whatsthis</value>
<value>Introduïu aquí la clau secreta</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>S' ha arribat al màxim nombre permès de galeries</value>
@@ -329,7 +467,7 @@
<value>Introduïu el nom d' usuari del compte.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Administrador</value>
<value>Nom d' usuari</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Surt</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>La mida màx. de fitxer és</value>
</data>
<data name="Members" xml:space="preserve">
<value>Membres</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>Ha fallat en establir la 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Rebutja</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>Versió de versió</value>
</data>
<data name="Rename" xml:space="preserve">
<value>Reanomena</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>Enllaços de pestanya nous</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>La icona per mostrar en capçaleres i pestanyes</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>Logotip</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>Quantes galeries poden crear els usuaris</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>Resolució de miniatures</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>El nom a mostrar en capçaleres i pestanyes</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>Títol</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>El contingut que s'ha de mostrar a la pàgina d'informació de galeta</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>Política de galetes personalitzada</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>Polítiques personalitzades</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>Ha fallat en obtenir l' arranjament</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>Mostra el codi QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>El codi QR especifica l' idioma del visor</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Inclou la cultura a QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>Una cita per mostrar a dalt de la galeria</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>Clau secreta</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>L' usuari hauria de filtrar i agrupar els suports?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>Mostra els filtres</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>Cal que els convidats pugin elements</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>Tema</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>L' usuari hauria de veure els emergents d' estil R del PIB?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Habilitat</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Passi de diapositives</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Ús</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>Espoons</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>Ara mateix no hi ha patrocinadors. Per què no et converteixes en el primer!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>Ha fallat en carregar la llista de patrocinadors</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>Suports</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Marca horària</value>
</data>
<data name="Total" xml:space="preserve">
<value>Total</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>Pujador</value>
</data>
<data name="User" xml:space="preserve">
<value>Usuari</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>La contrasenya i contrasenya proporcionada no coincideixen</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>Visiteu</value>
</data>
<data name="Warning" xml:space="preserve">
<value>Avís</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Esborrat</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>Galeria no vàlida</value>
</data>
<data name="Accept" xml:space="preserve">
<value>Accepta</value>
</data>
<data name="Action" xml:space="preserve">
<value>Acció</value>
</data>
<data name="Actions" xml:space="preserve">
<value>Accions</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>Aprovada</value>
</data>
<data name="Audit" xml:space="preserve">
<value>Auditoria</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>Massa aprovat totes les revisions pendents</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>Massa rebutjat totes les revisions pendents</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>Un visitant ha aprovat l'ús de les galetesName</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>S' ha creat la galeria</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>S' ha creat un usuari nou</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>S' ha esborrat un recurs personalitzat</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>S' ha pujat un recurs personalitzat</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>S' ha esborrat la galeria</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>Eliminat d' usuari</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>S' ha exportat una còpia de seguretat</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>S' ha detectat un intent d' accés erroni</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>El comptador de intents d' accés ha fallat ha reiniciat</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>Usuari Froze</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>S' ha importat una còpia de seguretat</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>aprovada a la galeria</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>s' ha esborrat a la galeria</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>s' ha rebutjat a la galeria</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>Quants registres mostrar</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Límit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>Ha fallat en obtenir la llista d'auditories</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>S' ha desactivat</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>Registres d' auditoria</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>S' ha afegit un factor multi al seu compte</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>Testimoni multi- factor correcte</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>Reinicia la seva clau multi- factor</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reinicia el factor multi per a l' usuari</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>Filtra els registres basats en un terme de cerca</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>Terme de cerca</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>S' ha actualitzat l' arranjament de la galeria</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>Usuari unròze</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>S' ha actualitzat la galeria</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>Usuari actualitzat</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>S' ha connectat l' usuari</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>Esborrat totes les galeries</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>S' ha esborrat la galeria</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>Galleries disponibles</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>Ha fallat en comprovar l' estat del compte</value>
</data>
<data name="Clean" xml:space="preserve">
<value>Neteja</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>Tanca</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>Si us plau, contacteu amb un administrador del lloc web per proporcionar accés</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>Ha fallat en registrar un missatge d'auditori per aprovar galetes</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>Política de galetes</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>Utilitzant aquest lloc web estàs d'acord amb el nostre ús de galetes bàsiques d'acord amb els nostres termes d'ús de galeta. Per descobrir-ne més si us plau, mireu la nostra</value>
</data>
<data name="Create" xml:space="preserve">
<value>Crea</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>Actualment no teniu accés</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>Recursos personalitzats</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>Esteu segur que voleu esborrar aquesta galeria?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>Aquesta és una versió demo. Tota la configuració està periòdicament esborrada per assegurar una pissarra neta per als futurs exàmens.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>Acció obsoleta realitzada</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>Ha fallat en baixar la galeria</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>Ha fallat en baixar la galeria. La clau secreta no era vàlida</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>Ha fallat en actualitzar la galeria</value>
</data>
@@ -251,7 +389,7 @@
<value>Si us plau, introduïu la clau secreta.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>dia del casament@ info: whatsthis</value>
<value>Introduïu aquí la clau secreta</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>S' ha arribat al màxim nombre permès de galeries</value>
@@ -329,7 +467,7 @@
<value>Introduïu el nom d' usuari del compte.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Administrador</value>
<value>Nom d' usuari</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Surt</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>La mida màx. de fitxer és</value>
</data>
<data name="Members" xml:space="preserve">
<value>Membres</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>Ha fallat en establir la 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Rebutja</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>Versió de versió</value>
</data>
<data name="Rename" xml:space="preserve">
<value>Reanomena</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>Enllaços de pestanya nous</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>La icona per mostrar en capçaleres i pestanyes</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>Logotip</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>Quantes galeries poden crear els usuaris</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>Resolució de miniatures</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>El nom a mostrar en capçaleres i pestanyes</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>Títol</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>El contingut que s'ha de mostrar a la pàgina d'informació de galeta</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>Política de galetes personalitzada</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>Polítiques personalitzades</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>Ha fallat en obtenir l' arranjament</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>Mostra el codi QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>El codi QR especifica l' idioma del visor</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Inclou la cultura a QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>Una cita per mostrar a dalt de la galeria</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>Clau secreta</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>L' usuari hauria de filtrar i agrupar els suports?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>Mostra els filtres</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>Cal que els convidats pugin elements</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>Tema</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>L' usuari hauria de veure els emergents d' estil R del PIB?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Habilitat</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Passi de diapositives</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Ús</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>Espoons</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>Ara mateix no hi ha patrocinadors. Per què no et converteixes en el primer!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>Ha fallat en carregar la llista de patrocinadors</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>Suports</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Marca horària</value>
</data>
<data name="Total" xml:space="preserve">
<value>Total</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>Pujador</value>
</data>
<data name="User" xml:space="preserve">
<value>Usuari</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>La contrasenya i contrasenya proporcionada no coincideixen</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>Visiteu</value>
</data>
<data name="Warning" xml:space="preserve">
<value>Avís</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Esborrat</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>Galeria no vàlida</value>
</data>
<data name="Accept" xml:space="preserve">
<value>Accepta</value>
</data>
<data name="Action" xml:space="preserve">
<value>Acció</value>
</data>
<data name="Actions" xml:space="preserve">
<value>Accions</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>Aprovada</value>
</data>
<data name="Audit" xml:space="preserve">
<value>Auditoria</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>Massa aprovat totes les revisions pendents</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>Massa rebutjat totes les revisions pendents</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>Un visitant ha aprovat l'ús de les galetesName</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>S' ha creat la galeria</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>S' ha creat un usuari nou</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>S' ha esborrat un recurs personalitzat</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>S' ha pujat un recurs personalitzat</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>S' ha esborrat la galeria</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>Eliminat d' usuari</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>S' ha exportat una còpia de seguretat</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>S' ha detectat un intent d' accés erroni</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>El comptador de intents d' accés ha fallat ha reiniciat</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>Usuari Froze</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>S' ha importat una còpia de seguretat</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>aprovada a la galeria</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>s' ha esborrat a la galeria</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>s' ha rebutjat a la galeria</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>Quants registres mostrar</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Límit</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>Ha fallat en obtenir la llista d'auditories</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>S' ha desactivat</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>Registres d' auditoria</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>S' ha afegit un factor multi al seu compte</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>Testimoni multi- factor correcte</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>Reinicia la seva clau multi- factor</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Reinicia el factor multi per a l' usuari</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>Filtra els registres basats en un terme de cerca</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>Terme de cerca</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>S' ha actualitzat l' arranjament de la galeria</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>Usuari unròze</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>S' ha actualitzat la galeria</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>Usuari actualitzat</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>S' ha connectat l' usuari</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>Esborrat totes les galeries</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>S' ha esborrat la galeria</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>Galleries disponibles</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>Ha fallat en comprovar l' estat del compte</value>
</data>
<data name="Clean" xml:space="preserve">
<value>Neteja</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>Tanca</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>Si us plau, contacteu amb un administrador del lloc web per proporcionar accés</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>Ha fallat en registrar un missatge d'auditori per aprovar galetes</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>Política de galetes</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>Utilitzant aquest lloc web estàs d'acord amb el nostre ús de galetes bàsiques d'acord amb els nostres termes d'ús de galeta. Per descobrir-ne més si us plau, mireu la nostra</value>
</data>
<data name="Create" xml:space="preserve">
<value>Crea</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>Actualment no teniu accés</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>Recursos personalitzats</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>Esteu segur que voleu esborrar aquesta galeria?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>Aquesta és una versió demo. Tota la configuració està periòdicament esborrada per assegurar una pissarra neta per als futurs exàmens.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>Acció obsoleta realitzada</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>Ha fallat en baixar la galeria</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>Ha fallat en baixar la galeria. La clau secreta no era vàlida</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>Ha fallat en actualitzar la galeria</value>
</data>
@@ -251,7 +389,7 @@
<value>Si us plau, introduïu la clau secreta.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>dia del casament@ info: whatsthis</value>
<value>Introduïu aquí la clau secreta</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>S' ha arribat al màxim nombre permès de galeries</value>
@@ -329,7 +467,7 @@
<value>Introduïu el nom d' usuari del compte.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Administrador</value>
<value>Nom d' usuari</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Surt</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>La mida màx. de fitxer és</value>
</data>
<data name="Members" xml:space="preserve">
<value>Membres</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>Ha fallat en establir la 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Rebutja</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>Versió de versió</value>
</data>
<data name="Rename" xml:space="preserve">
<value>Reanomena</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>Enllaços de pestanya nous</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>La icona per mostrar en capçaleres i pestanyes</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>Logotip</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>Quantes galeries poden crear els usuaris</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>Resolució de miniatures</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>El nom a mostrar en capçaleres i pestanyes</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>Títol</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>El contingut que s'ha de mostrar a la pàgina d'informació de galeta</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>Política de galetes personalitzada</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>Polítiques personalitzades</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>Ha fallat en obtenir l' arranjament</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>Mostra el codi QR</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>El codi QR especifica l' idioma del visor</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Inclou la cultura a QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>Una cita per mostrar a dalt de la galeria</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>Clau secreta</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>L' usuari hauria de filtrar i agrupar els suports?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>Mostra els filtres</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>Cal que els convidats pugin elements</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>Tema</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>L' usuari hauria de veure els emergents d' estil R del PIB?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Habilitat</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Passi de diapositives</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Ús</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>Espoons</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>Ara mateix no hi ha patrocinadors. Per què no et converteixes en el primer!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>Ha fallat en carregar la llista de patrocinadors</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>Suports</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Marca horària</value>
</data>
<data name="Total" xml:space="preserve">
<value>Total</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>Pujador</value>
</data>
<data name="User" xml:space="preserve">
<value>Usuari</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>La contrasenya i contrasenya proporcionada no coincideixen</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>Visiteu</value>
</data>
<data name="Warning" xml:space="preserve">
<value>Avís</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Esborrat</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>Neplatná galerie</value>
</data>
<data name="Accept" xml:space="preserve">
<value>Přijmout</value>
</data>
<data name="Action" xml:space="preserve">
<value>Akce</value>
</data>
<data name="Actions" xml:space="preserve">
<value>Akce</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>Schváleno</value>
</data>
<data name="Audit" xml:space="preserve">
<value>Audit</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>Bulk schválil všechny dosud nevyřízené recenze</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>Bulk odmítl všechny probíhající recenze</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>Návštěvník schválil používání cookies</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>Vytvořeno galerie</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>Vytvořeno nové uživatele</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>Smazán vlastní zdroj</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>Nahraný vlastní zdroj</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>Vymazaná galerie</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>Smazán uživatel</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>Exportovat zálohu</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>Zjištěn neúspěšný pokus o přihlášení</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>Selhání přihlašovacích pokusů resetovat</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>Uživatel Froze</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>Importovat zálohu</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>schválené v galerii</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>smazáno v galerii</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>zamítnuto v galerii</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>Kolik záznamů ukázat</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Omezení</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>Nepodařilo se získat seznam auditů</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>Zaznamenaný</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>Záznamy o auditu</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>Přidáno multifaktor na jejich účet</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>Poskytnuté správné vícefaktorové žeton</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>Obnovit jejich multifaktor klíč</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Obnovit multi- faktor pro uživatele</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>Filtrační protokoly založené na vyhledávacím termínu</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>Vyhledávání</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>Aktualizované nastavení pro galerii</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>Uživatel bez zamrznutí</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>Aktualizovaná galerie</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>Aktualizovaný uživatel</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>Uživatel přihlášen</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>Vytřít všechny galerie</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>Vymazaná galerie</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>Dostupné galerie</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>Chyba při kontrole stavu účtu</value>
</data>
<data name="Clean" xml:space="preserve">
<value>Čisté</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>Zavřít</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>Kontaktujte prosím správce stránek, aby poskytl přístup</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>Selhalo zaznamenávání auditní zprávy pro schválení cookie</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>Cookie politika</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>Použitím této webové stránky souhlasíte s použitím základních cookies v souladu s našimi podmínkami používání cookies. Chcete-li zjistit více, podívejte se na naše</value>
</data>
<data name="Create" xml:space="preserve">
<value>Vytvořit</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>V současné době nemáte přístup</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>Vlastní zdroje</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>Jste si jistý, že chcete tuto galerii smazat?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>Tohle je demo verze. Veškerá konfigurace je pravidelně vymazána, aby byla zajištěna čistá břidlice pro budoucí testovače.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>Provedená destruktivní akce</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>Selhalo stahování galerie</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>Nepodařilo se stáhnout galerii. Tajný klíč byl neplatný</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>Nepodařilo se aktualizovat galerii</value>
</data>
@@ -251,7 +389,7 @@
<value>Prosím, zadejte tajný klíč.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>svatební den</value>
<value>Zde zadejte tajný klíč</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>Maximální povolený počet galerií byl dosažen</value>
@@ -329,7 +467,7 @@
<value>Zadejte prosím uživatelské jméno účtu.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>Uživatelské jméno</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Odhlášení</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>Maximální velikost souboru je</value>
</data>
<data name="Members" xml:space="preserve">
<value>Členové</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>Selhalo nastavení 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Odmítnout</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>Verze vydání</value>
</data>
<data name="Rename" xml:space="preserve">
<value>Přejmenovat</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>Nové kartové odkazy</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>Ikona pro zobrazení v hlavičkách a kartách</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>Logo</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>Kolik galerií je uživatelům dovoleno vytvářet</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>Rozlišení náhledu</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>Název zobrazovat v hlavičkách a kartách</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>Název</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>Obsah zobrazený na stránce Informace o CookiePolicy</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>Vlastní Cookie politika</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>Celní politika</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>Nepodařilo se získat nastavení</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>Zobrazit QR kód</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>Pokud by QR kód specifikoval jazyk zobrazení</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Zahrnout kulturu do QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>Citace k zobrazení v horní části galerie</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>Tajný klíč</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>Měl by být uživatel schopen filtrovat a seskupovat média?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>Zobrazit filtry</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>Mělo by být hostům dovoleno nahrávat položky</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>Téma</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>Měl by uživatel vidět popupy ve stylu GDPR?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Povoleno</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Použití</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>Sponzoři</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>V současnosti nejsou žádní sponzoři. Proč se nestaneš první!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>Nepodařilo se načíst seznam sponzorů</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>Podpora</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Časový údaj</value>
</data>
<data name="Total" xml:space="preserve">
<value>Celkem</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>Nahrávač</value>
</data>
<data name="User" xml:space="preserve">
<value>Uživatel</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>Poskytnuté heslo a confrim heslo se neshodují</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>Návštěva</value>
</data>
<data name="Warning" xml:space="preserve">
<value>Varování</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Utřít</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>Neplatná galerie</value>
</data>
<data name="Accept" xml:space="preserve">
<value>Přijmout</value>
</data>
<data name="Action" xml:space="preserve">
<value>Akce</value>
</data>
<data name="Actions" xml:space="preserve">
<value>Akce</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>Schváleno</value>
</data>
<data name="Audit" xml:space="preserve">
<value>Audit</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>Bulk schválil všechny dosud nevyřízené recenze</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>Bulk odmítl všechny probíhající recenze</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>Návštěvník schválil používání cookies</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>Vytvořeno galerie</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>Vytvořeno nové uživatele</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>Smazán vlastní zdroj</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>Nahraný vlastní zdroj</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>Vymazaná galerie</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>Smazán uživatel</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>Exportovat zálohu</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>Zjištěn neúspěšný pokus o přihlášení</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>Selhání přihlašovacích pokusů resetovat</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>Uživatel Froze</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>Importovat zálohu</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>schválené v galerii</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>smazáno v galerii</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>zamítnuto v galerii</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>Kolik záznamů ukázat</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Omezení</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>Nepodařilo se získat seznam auditů</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>Zaznamenaný</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>Záznamy o auditu</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>Přidáno multifaktor na jejich účet</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>Poskytnuté správné vícefaktorové žeton</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>Obnovit jejich multifaktor klíč</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Obnovit multi- faktor pro uživatele</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>Filtrační protokoly založené na vyhledávacím termínu</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>Vyhledávání</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>Aktualizované nastavení pro galerii</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>Uživatel bez zamrznutí</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>Aktualizovaná galerie</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>Aktualizovaný uživatel</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>Uživatel přihlášen</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>Vytřít všechny galerie</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>Vymazaná galerie</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>Dostupné galerie</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>Chyba při kontrole stavu účtu</value>
</data>
<data name="Clean" xml:space="preserve">
<value>Čisté</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>Zavřít</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>Kontaktujte prosím správce stránek, aby poskytl přístup</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>Selhalo zaznamenávání auditní zprávy pro schválení cookie</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>Cookie politika</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>Použitím této webové stránky souhlasíte s použitím základních cookies v souladu s našimi podmínkami používání cookies. Chcete-li zjistit více, podívejte se na naše</value>
</data>
<data name="Create" xml:space="preserve">
<value>Vytvořit</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>V současné době nemáte přístup</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>Vlastní zdroje</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>Jste si jistý, že chcete tuto galerii smazat?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>Tohle je demo verze. Veškerá konfigurace je pravidelně vymazána, aby byla zajištěna čistá břidlice pro budoucí testovače.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>Provedená destruktivní akce</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>Selhalo stahování galerie</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>Nepodařilo se stáhnout galerii. Tajný klíč byl neplatný</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>Nepodařilo se aktualizovat galerii</value>
</data>
@@ -251,7 +389,7 @@
<value>Prosím, zadejte tajný klíč.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>svatební den</value>
<value>Zde zadejte tajný klíč</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>Maximální povolený počet galerií byl dosažen</value>
@@ -329,7 +467,7 @@
<value>Zadejte prosím uživatelské jméno účtu.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>Uživatelské jméno</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Odhlášení</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>Maximální velikost souboru je</value>
</data>
<data name="Members" xml:space="preserve">
<value>Členové</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>Selhalo nastavení 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Odmítnout</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>Verze vydání</value>
</data>
<data name="Rename" xml:space="preserve">
<value>Přejmenovat</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>Nové kartové odkazy</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>Ikona pro zobrazení v hlavičkách a kartách</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>Logo</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>Kolik galerií je uživatelům dovoleno vytvářet</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>Rozlišení náhledu</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>Název zobrazovat v hlavičkách a kartách</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>Název</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>Obsah zobrazený na stránce Informace o CookiePolicy</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>Vlastní Cookie politika</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>Celní politika</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>Nepodařilo se získat nastavení</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>Zobrazit QR kód</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>Pokud by QR kód specifikoval jazyk zobrazení</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Zahrnout kulturu do QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>Citace k zobrazení v horní části galerie</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>Tajný klíč</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>Měl by být uživatel schopen filtrovat a seskupovat média?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>Zobrazit filtry</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>Mělo by být hostům dovoleno nahrávat položky</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>Téma</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>Měl by uživatel vidět popupy ve stylu GDPR?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Povoleno</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Použití</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>Sponzoři</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>V současnosti nejsou žádní sponzoři. Proč se nestaneš první!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>Nepodařilo se načíst seznam sponzorů</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>Podpora</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Časový údaj</value>
</data>
<data name="Total" xml:space="preserve">
<value>Celkem</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>Nahrávač</value>
</data>
<data name="User" xml:space="preserve">
<value>Uživatel</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>Poskytnuté heslo a confrim heslo se neshodují</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>Návštěva</value>
</data>
<data name="Warning" xml:space="preserve">
<value>Varování</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Utřít</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>Ugyldigt galleri</value>
</data>
<data name="Accept" xml:space="preserve">
<value>Accepter</value>
</data>
<data name="Action" xml:space="preserve">
<value>Handling</value>
</data>
<data name="Actions" xml:space="preserve">
<value>Handlinger</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>Godkendt</value>
</data>
<data name="Audit" xml:space="preserve">
<value>Revision</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>Bulk godkendte alle verserende anmeldelser</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>Bulk afviste alle verserende anmeldelser</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>En besøgende har godkendt brugen af cookies</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>Oprettet galleri</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>Oprettet ny bruger</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>Slettet brugerdefineret ressource</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>Uploadet brugerdefineret ressource</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>Slettede galleri</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>Slettet bruger</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>Eksporteret sikkerhedskopi</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>Mislykkedes login forsøg opdaget</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>Mislykkede login- forsøg tæller nulstilling</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>Froze bruger</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>Importeret en sikkerhedskopi</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>godkendt på galleri</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>slettet i galleri</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>afvist på galleriet</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>Hvor mange logfiler der skal vises</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Grænse</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>Kunne ikke få revisionslisten</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>Lokket ud</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>Audit Logs</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>Tilføjet multifaktor til deres konto</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>Forudsat korrekt multifaktor token</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>Nulstil deres multifaktornøgle</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Nulstil multi- faktor for brugeren</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>Filtrér logfiler baseret på et søgeudtryk</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>Søgebetegnelse</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>Opdateret indstilling til galleri</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>Unfroze bruger</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>Opdateret galleri</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>Opdateret bruger</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>Bruger logget ind</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>Slebet alle gallerier</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>Trådnet galleri</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>Tilgængelige gallerier</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>Kunne ikke kontrollere kontotilstand</value>
</data>
<data name="Clean" xml:space="preserve">
<value>Ren</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>Luk</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>Kontakt venligst en site administrator for at give adgang</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>Kunne ikke logge en revisionsmeddelelse for cookie-godkendelse</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>Cookie-politik</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>Ved at bruge denne hjemmeside accepterer du vores brug af grundlæggende cookies i overensstemmelse med vores vilkår for cookie brug. For at finde ud af mere se venligst vores</value>
</data>
<data name="Create" xml:space="preserve">
<value>Opret</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>Du har i øjeblikket ikke adgang</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>Brugerdefinerede ressourcer</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>Er du sikker på, du vil slette dette galleri?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>Det er en demo-version. Alle konfigurationer aftørres regelmæssigt for at sikre en ren skifer til fremtidige testere.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>Destruktiv handling udført</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>Kunne ikke downloade galleri</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>Kunne ikke downloade galleri. Den hemmelige nøgle var ugyldig</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>Kunne ikke opdatere galleri</value>
</data>
@@ -251,7 +389,7 @@
<value>Indtast venligst den hemmelige nøgle.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>ægteskab- dag</value>
<value>Indtast hemmelig nøgle her</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>Det maksimalt tilladte antal gallerier er nået</value>
@@ -329,7 +467,7 @@
<value>Indtast venligst kontobrugernavn.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>Brugernavn</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>Maks. filstørrelse er</value>
</data>
<data name="Members" xml:space="preserve">
<value>Medlemmerne</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>Kunne ikke oprette 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Afvis</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>Udgivelsesversion</value>
</data>
<data name="Rename" xml:space="preserve">
<value>Omdøb</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>Nyt fanebladskort</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>Ikonet der skal vises i overskrifter og faneblade</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>Logo</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>Hvor mange gallerier er brugere lov til at oprette</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>Miniatureopløsning</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>Navnet der skal vises i overskrifter og faneblade</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>Titel</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>Indholdet at vise på CookiePolicy info side</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>Brugerdefineret cookie-politik</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>Brugerdefineret politik</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>Kunne ikke få indstillinger</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>Vis QR- kode</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>Hvis QR-koden angiver visningssproget</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Inkludér kultur i QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>Et tilbud til at vise i toppen af galleriet</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>Hemmelig nøgle</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>Skal brugeren kunne filtrere og gruppere medier?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>Vis filtre</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>Skal gæsterne have lov til at uploade elementer</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>Emne</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>Skal brugeren se GDPR stil popups?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Aktiveret</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Anvendelse</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>Sponsorer</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>Der er i øjeblikket ingen sponsorer. Hvorfor bliver du ikke den første!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>Kunne ikke indlæse sponsorlisten</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>Støttere</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Tidsstempel</value>
</data>
<data name="Total" xml:space="preserve">
<value>I alt</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>Uploader</value>
</data>
<data name="User" xml:space="preserve">
<value>Bruger</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>Den medfølgende adgangskode og confrim password matcher ikke</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>Besøg</value>
</data>
<data name="Warning" xml:space="preserve">
<value>Advarsel</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Tør</value>
</data>

View File

@@ -94,6 +94,12 @@
<data name="406_Error_Title" xml:space="preserve">
<value>Ugyldigt galleri</value>
</data>
<data name="Accept" xml:space="preserve">
<value>Accepter</value>
</data>
<data name="Action" xml:space="preserve">
<value>Handling</value>
</data>
<data name="Actions" xml:space="preserve">
<value>Handlinger</value>
</data>
@@ -106,9 +112,120 @@
<data name="Approved" xml:space="preserve">
<value>Godkendt</value>
</data>
<data name="Audit" xml:space="preserve">
<value>Revision</value>
</data>
<data name="Audit_BulkApproveReviews" xml:space="preserve">
<value>Bulk godkendte alle verserende anmeldelser</value>
</data>
<data name="Audit_BulkRejectReviews" xml:space="preserve">
<value>Bulk afviste alle verserende anmeldelser</value>
</data>
<data name="Audit_CookieConsentApproved" xml:space="preserve">
<value>En besøgende har godkendt brugen af cookies</value>
</data>
<data name="Audit_CreatedGallery" xml:space="preserve">
<value>Oprettet galleri</value>
</data>
<data name="Audit_CreatedNewUser" xml:space="preserve">
<value>Oprettet ny bruger</value>
</data>
<data name="Audit_CustomResourceDeleted" xml:space="preserve">
<value>Slettet brugerdefineret ressource</value>
</data>
<data name="Audit_CustomResourceUploaded" xml:space="preserve">
<value>Uploadet brugerdefineret ressource</value>
</data>
<data name="Audit_DeletedGallery" xml:space="preserve">
<value>Slettede galleri</value>
</data>
<data name="Audit_DeletedUser" xml:space="preserve">
<value>Slettet bruger</value>
</data>
<data name="Audit_ExportedBackup" xml:space="preserve">
<value>Eksporteret sikkerhedskopi</value>
</data>
<data name="Audit_FailedLoginAttemptDetected" xml:space="preserve">
<value>Mislykkedes login forsøg opdaget</value>
</data>
<data name="Audit_FailedLoginAttemptReset" xml:space="preserve">
<value>Mislykkede login- forsøg tæller nulstilling</value>
</data>
<data name="Audit_FrozeUser" xml:space="preserve">
<value>Froze bruger</value>
</data>
<data name="Audit_ImportedBackup" xml:space="preserve">
<value>Importeret en sikkerhedskopi</value>
</data>
<data name="Audit_ItemApprovedInGallery" xml:space="preserve">
<value>godkendt på galleri</value>
</data>
<data name="Audit_ItemDeletedInGallery" xml:space="preserve">
<value>slettet i galleri</value>
</data>
<data name="Audit_ItemRejectedInGallery" xml:space="preserve">
<value>afvist på galleriet</value>
</data>
<data name="Audit_Limit_Help" xml:space="preserve">
<value>Hvor mange logfiler der skal vises</value>
</data>
<data name="Audit_Limit_Label" xml:space="preserve">
<value>Grænse</value>
</data>
<data name="Audit_List_Failed" xml:space="preserve">
<value>Kunne ikke få revisionslisten</value>
</data>
<data name="Audit_LoggedOut" xml:space="preserve">
<value>Lokket ud</value>
</data>
<data name="Audit_Logs" xml:space="preserve">
<value>Audit Logs</value>
</data>
<data name="Audit_MultiFactorAdded" xml:space="preserve">
<value>Tilføjet multifaktor til deres konto</value>
</data>
<data name="Audit_MultiFactorPassed" xml:space="preserve">
<value>Forudsat korrekt multifaktor token</value>
</data>
<data name="Audit_MultiFactorReset" xml:space="preserve">
<value>Nulstil deres multifaktornøgle</value>
</data>
<data name="Audit_MultiFactorResetUser" xml:space="preserve">
<value>Nulstil multi- faktor for brugeren</value>
</data>
<data name="Audit_SearchTerm_Help" xml:space="preserve">
<value>Filtrér logfiler baseret på et søgeudtryk</value>
</data>
<data name="Audit_SearchTerm_Label" xml:space="preserve">
<value>Søgebetegnelse</value>
</data>
<data name="Audit_SettingsUpdated" xml:space="preserve">
<value>Opdateret indstilling til galleri</value>
</data>
<data name="Audit_UnfrozeUser" xml:space="preserve">
<value>Unfroze bruger</value>
</data>
<data name="Audit_UpdatedGallery" xml:space="preserve">
<value>Opdateret galleri</value>
</data>
<data name="Audit_UpdatedUser" xml:space="preserve">
<value>Opdateret bruger</value>
</data>
<data name="Audit_UserLoggedIn" xml:space="preserve">
<value>Bruger logget ind</value>
</data>
<data name="Audit_WipeAllGalleries" xml:space="preserve">
<value>Slebet alle gallerier</value>
</data>
<data name="Audit_WipedGallery" xml:space="preserve">
<value>Trådnet galleri</value>
</data>
<data name="Available_Galleries" xml:space="preserve">
<value>Tilgængelige gallerier</value>
</data>
<data name="Check_Account_State_Failed" xml:space="preserve">
<value>Kunne ikke kontrollere kontotilstand</value>
</data>
<data name="Clean" xml:space="preserve">
<value>Ren</value>
</data>
@@ -121,9 +238,24 @@
<data name="Close" xml:space="preserve">
<value>Luk</value>
</data>
<data name="Contact_Admin_For_Access" xml:space="preserve">
<value>Kontakt venligst en site administrator for at give adgang</value>
</data>
<data name="Cookie_Audit_Error" xml:space="preserve">
<value>Kunne ikke logge en revisionsmeddelelse for cookie-godkendelse</value>
</data>
<data name="CookiePolicy_Button_Text" xml:space="preserve">
<value>Cookie-politik</value>
</data>
<data name="CookiePolicy_Message_Short" xml:space="preserve">
<value>Ved at bruge denne hjemmeside accepterer du vores brug af grundlæggende cookies i overensstemmelse med vores vilkår for cookie brug. For at finde ud af mere se venligst vores</value>
</data>
<data name="Create" xml:space="preserve">
<value>Opret</value>
</data>
<data name="Currently_No_Access" xml:space="preserve">
<value>Du har i øjeblikket ikke adgang</value>
</data>
<data name="Custom_Resources" xml:space="preserve">
<value>Brugerdefinerede ressourcer</value>
</data>
@@ -154,6 +286,9 @@
<data name="Delete_Confirmation" xml:space="preserve">
<value>Er du sikker på, du vil slette dette galleri?</value>
</data>
<data name="Demo_Message" xml:space="preserve">
<value>Det er en demo-version. Alle konfigurationer aftørres regelmæssigt for at sikre en ren skifer til fremtidige testere.</value>
</data>
<data name="Destructive_Action_Performed" xml:space="preserve">
<value>Destruktiv handling udført</value>
</data>
@@ -184,6 +319,9 @@
<data name="Failed_Download_Gallery" xml:space="preserve">
<value>Kunne ikke downloade galleri</value>
</data>
<data name="Failed_Download_Gallery_Invalid_Key" xml:space="preserve">
<value>Kunne ikke downloade galleri. Den hemmelige nøgle var ugyldig</value>
</data>
<data name="Failed_Edit_Gallery" xml:space="preserve">
<value>Kunne ikke opdatere galleri</value>
</data>
@@ -251,7 +389,7 @@
<value>Indtast venligst den hemmelige nøgle.</value>
</data>
<data name="Gallery_Key_Placeholder" xml:space="preserve">
<value>ægteskab- dag</value>
<value>Indtast hemmelig nøgle her</value>
</data>
<data name="Gallery_Limit_Reached" xml:space="preserve">
<value>Det maksimalt tilladte antal gallerier er nået</value>
@@ -329,7 +467,7 @@
<value>Indtast venligst kontobrugernavn.</value>
</data>
<data name="Login_Username_Placeholder" xml:space="preserve">
<value>Admin</value>
<value>Brugernavn</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Logout</value>
@@ -340,6 +478,9 @@
<data name="Max_File_Size" xml:space="preserve">
<value>Maks. filstørrelse er</value>
</data>
<data name="Members" xml:space="preserve">
<value>Medlemmerne</value>
</data>
<data name="MultiFactor_Token_Set_Failed" xml:space="preserve">
<value>Kunne ikke oprette 2FA</value>
</data>
@@ -379,6 +520,9 @@
<data name="Reject" xml:space="preserve">
<value>Afvis</value>
</data>
<data name="Release_Version" xml:space="preserve">
<value>Udgivelsesversion</value>
</data>
<data name="Rename" xml:space="preserve">
<value>Omdøb</value>
</data>
@@ -529,6 +673,12 @@
<data name="Settings_Basic_LinksOpenNewTab_Label" xml:space="preserve">
<value>Nyt fanebladskort</value>
</data>
<data name="Settings_Basic_Logo_Help" xml:space="preserve">
<value>Ikonet der skal vises i overskrifter og faneblade</value>
</data>
<data name="Settings_Basic_Logo_Label" xml:space="preserve">
<value>Logo</value>
</data>
<data name="Settings_Basic_MaxGalleryCount_Help" xml:space="preserve">
<value>Hvor mange gallerier er brugere lov til at oprette</value>
</data>
@@ -547,6 +697,21 @@
<data name="Settings_Basic_ThumbnailSize_Label" xml:space="preserve">
<value>Miniatureopløsning</value>
</data>
<data name="Settings_Basic_Title_Help" xml:space="preserve">
<value>Navnet der skal vises i overskrifter og faneblade</value>
</data>
<data name="Settings_Basic_Title_Label" xml:space="preserve">
<value>Titel</value>
</data>
<data name="Settings_CustomCookiePolicy_Help" xml:space="preserve">
<value>Indholdet at vise på CookiePolicy info side</value>
</data>
<data name="Settings_CustomCookiePolicy_Label" xml:space="preserve">
<value>Brugerdefineret cookie-politik</value>
</data>
<data name="Settings_CustomPolicies" xml:space="preserve">
<value>Brugerdefineret politik</value>
</data>
<data name="Settings_Failed" xml:space="preserve">
<value>Kunne ikke få indstillinger</value>
</data>
@@ -643,6 +808,12 @@
<data name="Settings_Gallery_QRCodeEnabled_Label" xml:space="preserve">
<value>Vis QR- kode</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Help" xml:space="preserve">
<value>Hvis QR-koden angiver visningssproget</value>
</data>
<data name="Settings_Gallery_QRCodeIncludeCulture_Label" xml:space="preserve">
<value>Inkludér kultur i QR</value>
</data>
<data name="Settings_Gallery_Quote_Help" xml:space="preserve">
<value>Et tilbud til at vise i toppen af galleriet</value>
</data>
@@ -673,6 +844,12 @@
<data name="Settings_Gallery_SecretKey_Label" xml:space="preserve">
<value>Hemmelig nøgle</value>
</data>
<data name="Settings_Gallery_ShowFilters_Help" xml:space="preserve">
<value>Skal brugeren kunne filtrere og gruppere medier?</value>
</data>
<data name="Settings_Gallery_ShowFilters_Label" xml:space="preserve">
<value>Vis filtre</value>
</data>
<data name="Settings_Gallery_Upload_Help" xml:space="preserve">
<value>Skal gæsterne have lov til at uploade elementer</value>
</data>
@@ -781,6 +958,12 @@
<data name="Settings_Ntfy_Topic_Label" xml:space="preserve">
<value>Emne</value>
</data>
<data name="Settings_PoliciesEnabled_Help" xml:space="preserve">
<value>Skal brugeren se GDPR stil popups?</value>
</data>
<data name="Settings_PoliciesEnabled_Label" xml:space="preserve">
<value>Aktiveret</value>
</data>
<data name="Settings_Slideshow" xml:space="preserve">
<value>Slideshow</value>
</data>
@@ -889,6 +1072,21 @@
<data name="Space_Percent_Used" xml:space="preserve">
<value>Anvendelse</value>
</data>
<data name="Sponsors" xml:space="preserve">
<value>Sponsorer</value>
</data>
<data name="Sponsors_BecomeTheFirst" xml:space="preserve">
<value>Der er i øjeblikket ingen sponsorer. Hvorfor bliver du ikke den første!</value>
</data>
<data name="Sponsors_Load_Error" xml:space="preserve">
<value>Kunne ikke indlæse sponsorlisten</value>
</data>
<data name="Supporters" xml:space="preserve">
<value>Støttere</value>
</data>
<data name="Timestamp" xml:space="preserve">
<value>Tidsstempel</value>
</data>
<data name="Total" xml:space="preserve">
<value>I alt</value>
</data>
@@ -907,6 +1105,9 @@
<data name="Uploader" xml:space="preserve">
<value>Uploader</value>
</data>
<data name="User" xml:space="preserve">
<value>Bruger</value>
</data>
<data name="User_CPassword_Missmatch" xml:space="preserve">
<value>Den medfølgende adgangskode og confrim password matcher ikke</value>
</data>
@@ -928,6 +1129,9 @@
<data name="Visit" xml:space="preserve">
<value>Besøg</value>
</data>
<data name="Warning" xml:space="preserve">
<value>Advarsel</value>
</data>
<data name="Wipe" xml:space="preserve">
<value>Tør</value>
</data>

Some files were not shown because too many files have changed in this diff Show More