diff --git a/.env.example b/.env.example
index bde3a65..c850504 100644
--- a/.env.example
+++ b/.env.example
@@ -6,7 +6,7 @@ APP_URL=http://localhost
SMS_API_URL=https://sms.daragt.com/api/sms
-APP_LOCALE=en
+APP_LOCALE=tk
APP_FALLBACK_LOCALE=en
APP_FAKER_LOCALE=en_US
diff --git a/app/Filament/Pages/SendSms.php b/app/Filament/Pages/SendSms.php
index 8f0ce82..8425a6e 100644
--- a/app/Filament/Pages/SendSms.php
+++ b/app/Filament/Pages/SendSms.php
@@ -30,9 +30,9 @@ class SendSms extends Page
{
protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedChatBubbleLeftRight;
- protected static ?string $navigationLabel = 'Send SMS';
+ protected static ?string $navigationLabel = null;
- protected static ?string $title = 'Send SMS';
+ protected static ?string $title = null;
protected static ?int $navigationSort = 2;
@@ -47,6 +47,16 @@ class SendSms extends Page
public bool $campaignNotificationSent = false;
+ public static function getNavigationLabel(): string
+ {
+ return __('filament.send_sms.navigation');
+ }
+
+ public function getTitle(): string
+ {
+ return __('filament.send_sms.title');
+ }
+
public function mount(): void
{
$this->form->fill([
@@ -68,38 +78,37 @@ class SendSms extends Page
{
return $schema
->components([
- Section::make('Message')
- ->description('Write the SMS exactly as recipients should see it.')
+ Section::make(__('filament.send_sms.sections.message'))
->schema([
Textarea::make('message')
- ->label('SMS message')
+ ->label(__('filament.send_sms.fields.message'))
->required()
->rows(8)
->maxLength(1000)
->live(debounce: 300)
->helperText(fn (Get $get): string => app(SmsMessageAnalyzer::class)->summary((string) ($get('message') ?? ''))),
]),
- Section::make('Recipients')
- ->description('Send to everyone, pick specific coupon holders, or exclude numbers from a broadcast.')
+ Section::make(__('filament.send_sms.sections.recipients'))
+ ->description(__('filament.send_sms.sections.recipients_description'))
->schema([
Checkbox::make('send_to_all')
- ->label('Send to all coupon holders')
- ->helperText('When enabled, every coupon holder is included. Manual selection is disabled.')
+ ->label(__('filament.send_sms.fields.send_to_all'))
+ ->helperText(__('filament.send_sms.fields.send_to_all_helper'))
->live(),
Select::make('coupon_ids')
- ->label('Select recipients')
+ ->label(__('filament.send_sms.fields.coupon_ids'))
->multiple()
->searchable()
->disabled(fn (Get $get): bool => (bool) $get('send_to_all'))
->dehydrated(fn (Get $get): bool => ! (bool) $get('send_to_all'))
- ->helperText('Search by phone, coupon code, or ID.')
+ ->helperText(__('filament.send_sms.fields.coupon_ids_helper'))
->getSearchResultsUsing(fn (string $search): array => $this->searchCoupons($search))
->getOptionLabelsUsing(fn (array $values): array => $this->couponLabels($values)),
Select::make('excluded_coupon_ids')
- ->label('Exclude recipients')
+ ->label(__('filament.send_sms.fields.excluded_coupon_ids'))
->multiple()
->searchable()
- ->helperText('Excluded numbers will not receive this message, even when sending to all.')
+ ->helperText(__('filament.send_sms.fields.excluded_coupon_ids_helper'))
->getSearchResultsUsing(fn (string $search): array => $this->searchCoupons($search))
->getOptionLabelsUsing(fn (array $values): array => $this->couponLabels($values)),
]),
@@ -116,12 +125,12 @@ class SendSms extends Page
->footer([
Actions::make([
Action::make('send')
- ->label('Send SMS')
+ ->label(__('filament.send_sms.actions.send'))
->icon(Heroicon::OutlinedPaperAirplane)
->requiresConfirmation()
- ->modalHeading('Send SMS now?')
+ ->modalHeading(__('filament.send_sms.actions.send_confirm_heading'))
->modalDescription(fn (): string => $this->confirmationDescription())
- ->modalSubmitActionLabel('Send')
+ ->modalSubmitActionLabel(__('filament.send_sms.actions.send_confirm_submit'))
->action('sendCampaign')
->disabled(fn (): bool => $this->activeCampaignId !== null && ! $this->isCampaignComplete()),
]),
@@ -133,7 +142,7 @@ class SendSms extends Page
{
if ($this->activeCampaignId !== null && ! $this->isCampaignComplete()) {
Notification::make()
- ->title('A campaign is still sending')
+ ->title(__('filament.send_sms.notifications.campaign_still_sending'))
->warning()
->send();
@@ -167,8 +176,8 @@ class SendSms extends Page
if ($willReceive === 0) {
Notification::make()
- ->title('No valid recipients')
- ->body('Adjust your selection or exclusions — no coupon holders with valid phone numbers will receive this message.')
+ ->title(__('filament.send_sms.notifications.no_valid_recipients'))
+ ->body(__('filament.send_sms.notifications.no_valid_recipients_body'))
->danger()
->send();
@@ -190,8 +199,8 @@ class SendSms extends Page
$this->notifyCampaignFinished($campaign);
} else {
Notification::make()
- ->title('SMS campaign queued')
- ->body("Sending to {$campaign->recipient_count} recipient(s) in the background.")
+ ->title(__('filament.send_sms.notifications.queued'))
+ ->body(__('filament.send_sms.notifications.queued_body', ['count' => $campaign->recipient_count]))
->success()
->send();
}
@@ -227,20 +236,24 @@ class SendSms extends Page
if ($campaign->failed_count > 0 && $campaign->sent_count === 0) {
Notification::make()
- ->title('SMS campaign failed')
- ->body("{$campaign->failed_count} message(s) failed to send.")
+ ->title(__('filament.send_sms.notifications.failed'))
+ ->body(__('filament.send_sms.notifications.failed_body', ['count' => $campaign->failed_count]))
->danger()
->send();
} elseif ($campaign->failed_count > 0) {
Notification::make()
- ->title('SMS campaign finished with errors')
- ->body("Sent {$campaign->sent_count}, failed {$campaign->failed_count}, skipped {$campaign->skipped_count}.")
+ ->title(__('filament.send_sms.notifications.finished_with_errors'))
+ ->body(__('filament.send_sms.notifications.finished_with_errors_body', [
+ 'sent' => $campaign->sent_count,
+ 'failed' => $campaign->failed_count,
+ 'skipped' => $campaign->skipped_count,
+ ]))
->warning()
->send();
} else {
Notification::make()
- ->title('SMS campaign completed')
- ->body("Successfully sent {$campaign->sent_count} message(s).")
+ ->title(__('filament.send_sms.notifications.completed'))
+ ->body(__('filament.send_sms.notifications.completed_body', ['count' => $campaign->sent_count]))
->success()
->send();
}
@@ -264,7 +277,10 @@ class SendSms extends Page
$analyzer = app(SmsMessageAnalyzer::class);
$willReceive = $this->getWillReceiveCount();
- return "Send to {$willReceive} recipient(s)? {$analyzer->summary($message)}";
+ return __('filament.send_sms.confirmation', [
+ 'count' => $willReceive,
+ 'summary' => $analyzer->summary($message),
+ ]);
}
public function getWillReceiveCount(): int
@@ -304,7 +320,11 @@ class SendSms extends Page
return '';
}
- return "{$campaign->processedCount()} / {$campaign->recipient_count} processed · {$campaign->sent_count} sent";
+ return __('filament.send_sms.progress.processed', [
+ 'processed' => $campaign->processedCount(),
+ 'total' => $campaign->recipient_count,
+ 'sent' => $campaign->sent_count,
+ ]);
}
/**
diff --git a/app/Filament/Resources/Coupons/CouponResource.php b/app/Filament/Resources/Coupons/CouponResource.php
index 1f91045..cc753e8 100644
--- a/app/Filament/Resources/Coupons/CouponResource.php
+++ b/app/Filament/Resources/Coupons/CouponResource.php
@@ -19,12 +19,17 @@ class CouponResource extends Resource
protected static ?string $recordTitleAttribute = 'phone';
- protected static ?string $navigationLabel = 'Coupons';
+ protected static ?string $navigationLabel = null;
protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedTicket;
protected static ?int $navigationSort = 1;
+ public static function getNavigationLabel(): string
+ {
+ return __('filament.coupons.navigation');
+ }
+
public static function infolist(Schema $schema): Schema
{
return CouponInfolist::configure($schema);
diff --git a/app/Filament/Resources/Coupons/Schemas/CouponInfolist.php b/app/Filament/Resources/Coupons/Schemas/CouponInfolist.php
index d401b4a..5c83e3a 100644
--- a/app/Filament/Resources/Coupons/Schemas/CouponInfolist.php
+++ b/app/Filament/Resources/Coupons/Schemas/CouponInfolist.php
@@ -12,13 +12,17 @@ class CouponInfolist
return $schema
->components([
TextEntry::make('phone')
+ ->label(__('filament.fields.phone'))
->formatStateUsing(fn (string $state): string => format_phone($state))
->copyable(),
TextEntry::make('code')
+ ->label(__('filament.fields.code'))
->copyable(),
TextEntry::make('created_at')
+ ->label(__('filament.fields.created_at'))
->dateTime(),
TextEntry::make('updated_at')
+ ->label(__('filament.fields.updated_at'))
->dateTime(),
]);
}
diff --git a/app/Filament/Resources/Coupons/Tables/CouponsTable.php b/app/Filament/Resources/Coupons/Tables/CouponsTable.php
index 167fc2b..c706d3f 100644
--- a/app/Filament/Resources/Coupons/Tables/CouponsTable.php
+++ b/app/Filament/Resources/Coupons/Tables/CouponsTable.php
@@ -3,8 +3,8 @@
namespace App\Filament\Resources\Coupons\Tables;
use App\Filament\Tables\Filters\CreatedAtDateFilter;
-use Filament\Actions\ViewAction;
use Filament\Actions\DeleteAction;
+use Filament\Actions\ViewAction;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
@@ -16,19 +16,24 @@ class CouponsTable
->defaultSort('created_at', 'desc')
->columns([
TextColumn::make('id')
+ ->label(__('filament.fields.id'))
->sortable(),
TextColumn::make('phone')
+ ->label(__('filament.fields.phone'))
->formatStateUsing(fn (string $state): string => format_phone($state))
->searchable()
->sortable()
->copyable(),
TextColumn::make('code')
+ ->label(__('filament.fields.code'))
->sortable()
->copyable(),
TextColumn::make('created_at')
+ ->label(__('filament.fields.created_at'))
->dateTime()
->sortable(),
TextColumn::make('updated_at')
+ ->label(__('filament.fields.updated_at'))
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
diff --git a/app/Filament/Resources/PhoneVerifications/PhoneVerificationResource.php b/app/Filament/Resources/PhoneVerifications/PhoneVerificationResource.php
index 61c4787..ae11fdb 100644
--- a/app/Filament/Resources/PhoneVerifications/PhoneVerificationResource.php
+++ b/app/Filament/Resources/PhoneVerifications/PhoneVerificationResource.php
@@ -19,16 +19,31 @@ class PhoneVerificationResource extends Resource
protected static ?string $recordTitleAttribute = 'phone';
- protected static ?string $navigationLabel = 'OTP Verifications';
+ protected static ?string $navigationLabel = null;
- protected static ?string $modelLabel = 'OTP verification';
+ protected static ?string $modelLabel = null;
- protected static ?string $pluralModelLabel = 'OTP verifications';
+ protected static ?string $pluralModelLabel = null;
protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedKey;
protected static ?int $navigationSort = 2;
+ public static function getNavigationLabel(): string
+ {
+ return __('filament.phone_verifications.navigation');
+ }
+
+ public static function getModelLabel(): string
+ {
+ return __('filament.phone_verifications.model');
+ }
+
+ public static function getPluralModelLabel(): string
+ {
+ return __('filament.phone_verifications.plural');
+ }
+
public static function infolist(Schema $schema): Schema
{
return PhoneVerificationInfolist::configure($schema);
diff --git a/app/Filament/Resources/PhoneVerifications/Schemas/PhoneVerificationInfolist.php b/app/Filament/Resources/PhoneVerifications/Schemas/PhoneVerificationInfolist.php
index 1694e75..2070416 100644
--- a/app/Filament/Resources/PhoneVerifications/Schemas/PhoneVerificationInfolist.php
+++ b/app/Filament/Resources/PhoneVerifications/Schemas/PhoneVerificationInfolist.php
@@ -13,15 +13,20 @@ class PhoneVerificationInfolist
return $schema
->components([
TextEntry::make('phone')
+ ->label(__('filament.fields.phone'))
->formatStateUsing(fn (string $state): string => format_phone($state))
->copyable(),
TextEntry::make('expires_at')
+ ->label(__('filament.fields.expires_at'))
->dateTime(),
IconEntry::make('verified')
+ ->label(__('filament.fields.verified'))
->boolean(),
TextEntry::make('created_at')
+ ->label(__('filament.fields.created_at'))
->dateTime(),
TextEntry::make('updated_at')
+ ->label(__('filament.fields.updated_at'))
->dateTime(),
]);
}
diff --git a/app/Filament/Resources/PhoneVerifications/Tables/PhoneVerificationsTable.php b/app/Filament/Resources/PhoneVerifications/Tables/PhoneVerificationsTable.php
index a40fe17..798899c 100644
--- a/app/Filament/Resources/PhoneVerifications/Tables/PhoneVerificationsTable.php
+++ b/app/Filament/Resources/PhoneVerifications/Tables/PhoneVerificationsTable.php
@@ -16,22 +16,28 @@ class PhoneVerificationsTable
->defaultSort('created_at', 'desc')
->columns([
TextColumn::make('id')
+ ->label(__('filament.fields.id'))
->sortable(),
TextColumn::make('phone')
+ ->label(__('filament.fields.phone'))
->formatStateUsing(fn (string $state): string => format_phone($state))
->searchable()
->sortable()
->copyable(),
TextColumn::make('expires_at')
+ ->label(__('filament.fields.expires_at'))
->dateTime()
->sortable(),
IconColumn::make('verified')
+ ->label(__('filament.fields.verified'))
->boolean()
->sortable(),
TextColumn::make('created_at')
+ ->label(__('filament.fields.created_at'))
->dateTime()
->sortable(),
TextColumn::make('updated_at')
+ ->label(__('filament.fields.updated_at'))
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
diff --git a/app/Filament/Tables/Filters/CreatedAtDateFilter.php b/app/Filament/Tables/Filters/CreatedAtDateFilter.php
index b5ee7c9..f1b1188 100644
--- a/app/Filament/Tables/Filters/CreatedAtDateFilter.php
+++ b/app/Filament/Tables/Filters/CreatedAtDateFilter.php
@@ -13,12 +13,12 @@ class CreatedAtDateFilter
public static function make(): Filter
{
return Filter::make('created_at')
- ->label('Date')
+ ->label(__('filament.filters.date'))
->schema([
DatePicker::make('from')
- ->label('From'),
+ ->label(__('filament.filters.from')),
DatePicker::make('until')
- ->label('Until'),
+ ->label(__('filament.filters.until')),
])
->query(function (Builder $query, array $data): Builder {
return $query
@@ -35,12 +35,16 @@ class CreatedAtDateFilter
$indicators = [];
if ($data['from'] ?? null) {
- $indicators[] = Indicator::make('From '.Carbon::parse($data['from'])->toFormattedDateString())
+ $indicators[] = Indicator::make(__('filament.filters.from_indicator', [
+ 'date' => Carbon::parse($data['from'])->toFormattedDateString(),
+ ]))
->removeField('from');
}
if ($data['until'] ?? null) {
- $indicators[] = Indicator::make('Until '.Carbon::parse($data['until'])->toFormattedDateString())
+ $indicators[] = Indicator::make(__('filament.filters.until_indicator', [
+ 'date' => Carbon::parse($data['until'])->toFormattedDateString(),
+ ]))
->removeField('until');
}
diff --git a/app/Services/SmsMessageAnalyzer.php b/app/Services/SmsMessageAnalyzer.php
index 64ddb3e..62ce4b9 100644
--- a/app/Services/SmsMessageAnalyzer.php
+++ b/app/Services/SmsMessageAnalyzer.php
@@ -55,11 +55,16 @@ class SmsMessageAnalyzer
$parts = $this->estimatedParts($message);
if ($parts === 0) {
- return '0 characters';
+ return __('filament.sms_analyzer.zero_characters');
}
- $partLabel = $parts === 1 ? '1 SMS' : "{$parts} SMS";
+ $smsLabel = $parts === 1
+ ? __('filament.sms_analyzer.one_sms')
+ : __('filament.sms_analyzer.multiple_sms', ['count' => $parts]);
- return "{$characters} characters · {$partLabel}";
+ return __('filament.sms_analyzer.characters_sms', [
+ 'characters' => $characters,
+ 'sms' => $smsLabel,
+ ]);
}
}
diff --git a/lang/tk/auth.php b/lang/tk/auth.php
new file mode 100644
index 0000000..fa20fb8
--- /dev/null
+++ b/lang/tk/auth.php
@@ -0,0 +1,9 @@
+ 'Bu maglumatlar biziň ýazgylarymyza gabat gelenok.',
+ 'password' => 'Berlen parol nädogry.',
+ 'throttle' => 'Giriş synanyşyklary köp. :seconds sekuntdan soň gaýtadan synanyşyň.',
+
+];
diff --git a/lang/tk/filament.php b/lang/tk/filament.php
new file mode 100644
index 0000000..3e45b7b
--- /dev/null
+++ b/lang/tk/filament.php
@@ -0,0 +1,83 @@
+ [
+ 'navigation' => 'Kuponlar',
+ ],
+
+ 'phone_verifications' => [
+ 'navigation' => 'OTP tassyklamalary',
+ 'model' => 'OTP tassyklama',
+ 'plural' => 'OTP tassyklamalary',
+ ],
+
+ 'send_sms' => [
+ 'navigation' => 'SMS ibermek',
+ 'title' => 'SMS ibermek',
+ 'sections' => [
+ 'message' => 'Hat',
+ 'message_description' => 'SMS-ni alýanlar görmeli bolşy ýaly takyk ýazyň.',
+ 'recipients' => 'Alyjylar',
+ 'recipients_description' => 'Hemmä ibermek, belli kupon eýelerini saýlamak ýa-da sanlary aýyrmak.',
+ ],
+ 'fields' => [
+ 'message' => 'SMS habary',
+ 'send_to_all' => 'Ähli kupon eýelerine ibermek',
+ 'send_to_all_helper' => 'Açyk bolsa, ähli kupon eýeleri girýär. El bilen saýlaw öçürilýär.',
+ 'coupon_ids' => 'Alyjylary saýlaň',
+ 'coupon_ids_helper' => 'Telefon, kupon kody ýa-da ID boýunça gözleg.',
+ 'excluded_coupon_ids' => 'Alyjylary aýyrmak',
+ 'excluded_coupon_ids_helper' => 'Aýrylan sanlar bu habary almaz, hatda ähläne iberilende hem.',
+ ],
+ 'actions' => [
+ 'send' => 'SMS ibermek',
+ 'send_confirm_heading' => 'SMS häzir ibermeli?',
+ 'send_confirm_submit' => 'Iber',
+ ],
+ 'progress' => [
+ 'sending' => 'Habarlar iberilýär…',
+ 'processed' => ':processed / :total işlendi · :sent iberildi',
+ ],
+ 'notifications' => [
+ 'campaign_still_sending' => 'Kampaniýa entek iberilýär',
+ 'no_valid_recipients' => 'Dogry alyjy ýok',
+ 'no_valid_recipients_body' => 'Saýlawy ýa-da aýyrmalary üýtgediň — dogry telefon belgili kupon eýesi bu habary almaz.',
+ 'queued' => 'SMS kampaniýasy nobata goýuldy',
+ 'queued_body' => 'Arka fonda :count alyja iberilýär.',
+ 'failed' => 'SMS kampaniýasy şowsuz',
+ 'failed_body' => ':count habar iberilmedi.',
+ 'finished_with_errors' => 'SMS kampaniýasy ýalňyşlyklar bilen tamamlandy',
+ 'finished_with_errors_body' => 'Iberildi :sent, şowsuz :failed, geçildi :skipped.',
+ 'completed' => 'SMS kampaniýasy tamamlandy',
+ 'completed_body' => ':count habar üstünlikli iberildi.',
+ ],
+ 'confirmation' => ':count alyja ibermeli? :summary',
+ ],
+
+ 'filters' => [
+ 'date' => 'Sene',
+ 'from' => 'Başlanýan',
+ 'until' => 'Gutarýan',
+ 'from_indicator' => 'Başlanýan :date',
+ 'until_indicator' => 'Gutarýan :date',
+ ],
+
+ 'sms_analyzer' => [
+ 'zero_characters' => '0 harp',
+ 'characters_sms' => ':characters harp · :sms',
+ 'one_sms' => '1 SMS',
+ 'multiple_sms' => ':count SMS',
+ ],
+
+ 'fields' => [
+ 'id' => 'ID',
+ 'phone' => 'Telefon',
+ 'code' => 'Kupon kody',
+ 'created_at' => 'Döredilen',
+ 'updated_at' => 'Üýtgedilen',
+ 'expires_at' => 'Gutarýan wagty',
+ 'verified' => 'Tassyklanan',
+ ],
+
+];
diff --git a/lang/tk/validation.php b/lang/tk/validation.php
new file mode 100644
index 0000000..6a41986
--- /dev/null
+++ b/lang/tk/validation.php
@@ -0,0 +1,34 @@
+ ':attribute kabul edilmeli.',
+ 'array' => ':attribute massiw bolmaly.',
+ 'boolean' => ':attribute dogry ýa-da ýalňyş bolmaly.',
+ 'confirmed' => ':attribute tassyklamasy gabat gelenok.',
+ 'email' => ':attribute dogry e-poçta salgysy bolmaly.',
+ 'exists' => 'Saýlanan :attribute nädogry.',
+ 'integer' => ':attribute san bolmaly.',
+ 'max' => [
+ 'array' => ':attribute iň köp :max elementden ybarat bolmaly.',
+ 'numeric' => ':attribute iň köp :max bolmaly.',
+ 'string' => ':attribute iň köp :max harp bolmaly.',
+ ],
+ 'min' => [
+ 'array' => ':attribute iň az :min elementden ybarat bolmaly.',
+ 'numeric' => ':attribute iň az :min bolmaly.',
+ 'string' => ':attribute iň az :min harp bolmaly.',
+ ],
+ 'required' => ':attribute meýdany hökmany.',
+ 'string' => ':attribute setir bolmaly.',
+
+ 'attributes' => [
+ 'email' => 'e-poçta salgysy',
+ 'password' => 'parol',
+ 'message' => 'SMS habary',
+ 'send_to_all' => 'ähli kupon eýelerine ibermek',
+ 'coupon_ids' => 'alyjylar',
+ 'excluded_coupon_ids' => 'aýrylan alyjylar',
+ ],
+
+];
diff --git a/lang/vendor/filament-actions/tk/associate.php b/lang/vendor/filament-actions/tk/associate.php
new file mode 100644
index 0000000..f701adb
--- /dev/null
+++ b/lang/vendor/filament-actions/tk/associate.php
@@ -0,0 +1,28 @@
+ [
+ 'label' => 'İlişkilendir',
+ 'modal' => [
+ 'heading' => ':label İlişkilendir',
+ 'fields' => [
+ 'record_id' => [
+ 'label' => 'Kayıt',
+ ],
+ ],
+ 'actions' => [
+ 'associate' => [
+ 'label' => 'İlişkilendir',
+ ],
+ 'associate_another' => [
+ 'label' => 'İlişkilendir ve başka bir taneye başla',
+ ],
+ ],
+ ],
+ 'notifications' => [
+ 'associated' => [
+ 'title' => 'İlişkilendirildi',
+ ],
+ ],
+ ],
+];
diff --git a/lang/vendor/filament-actions/tk/attach.php b/lang/vendor/filament-actions/tk/attach.php
new file mode 100644
index 0000000..8af9552
--- /dev/null
+++ b/lang/vendor/filament-actions/tk/attach.php
@@ -0,0 +1,28 @@
+ [
+ 'label' => 'İliştir',
+ 'modal' => [
+ 'heading' => ':label iliştir',
+ 'fields' => [
+ 'record_id' => [
+ 'label' => 'Kayıt',
+ ],
+ ],
+ 'actions' => [
+ 'attach' => [
+ 'label' => 'İliştir',
+ ],
+ 'attach_another' => [
+ 'label' => 'İliştir ve başka bir taneye başla',
+ ],
+ ],
+ ],
+ 'notifications' => [
+ 'attached' => [
+ 'title' => 'İliştirildi',
+ ],
+ ],
+ ],
+];
diff --git a/lang/vendor/filament-actions/tk/create.php b/lang/vendor/filament-actions/tk/create.php
new file mode 100644
index 0000000..61f4588
--- /dev/null
+++ b/lang/vendor/filament-actions/tk/create.php
@@ -0,0 +1,23 @@
+ [
+ 'label' => ':label Oluştur',
+ 'modal' => [
+ 'heading' => ':label oluştur',
+ 'actions' => [
+ 'create' => [
+ 'label' => 'Döret',
+ ],
+ 'create_another' => [
+ 'label' => 'Oluştur & yeni oluştur',
+ ],
+ ],
+ ],
+ 'notifications' => [
+ 'created' => [
+ 'title' => 'Oluşturuldu',
+ ],
+ ],
+ ],
+];
diff --git a/lang/vendor/filament-actions/tk/delete.php b/lang/vendor/filament-actions/tk/delete.php
new file mode 100644
index 0000000..5cb65da
--- /dev/null
+++ b/lang/vendor/filament-actions/tk/delete.php
@@ -0,0 +1,73 @@
+ [
+
+ 'label' => 'Poz',
+
+ 'modal' => [
+
+ 'heading' => ':label poz',
+
+ 'actions' => [
+
+ 'delete' => [
+ 'label' => 'Poz',
+ ],
+
+ ],
+
+ ],
+
+ 'notifications' => [
+
+ 'deleted' => [
+ 'title' => 'Pozuldy',
+ ],
+
+ ],
+
+ ],
+
+ 'multiple' => [
+
+ 'label' => 'Saýlananlary poz',
+
+ 'modal' => [
+
+ 'heading' => 'Saýlananlary poz',
+
+ 'actions' => [
+
+ 'delete' => [
+ 'label' => 'Poz',
+ ],
+
+ ],
+
+ ],
+
+ 'notifications' => [
+
+ 'deleted' => [
+ 'title' => 'Pozuldy',
+ ],
+
+ 'deleted_partial' => [
+ 'title' => ':total ýazgydan :count pozuldy',
+ 'missing_authorization_failure_message' => ':count ýazgy pozmak üçin ygtyýaryňyz ýok.',
+ 'missing_processing_failure_message' => ':count ýazgy pozulmady.',
+ ],
+
+ 'deleted_none' => [
+ 'title' => 'Ýazgylar pozulmady',
+ 'missing_authorization_failure_message' => ':count ýazgy pozmak üçin ygtyýaryňyz ýok.',
+ 'missing_processing_failure_message' => ':count ýazgy pozulmady.',
+ ],
+
+ ],
+
+ ],
+
+];
diff --git a/lang/vendor/filament-actions/tk/detach.php b/lang/vendor/filament-actions/tk/detach.php
new file mode 100644
index 0000000..37827df
--- /dev/null
+++ b/lang/vendor/filament-actions/tk/detach.php
@@ -0,0 +1,36 @@
+ [
+ 'label' => 'Ayır',
+ 'modal' => [
+ 'heading' => ':label ayır',
+ 'actions' => [
+ 'detach' => [
+ 'label' => 'Ayır',
+ ],
+ ],
+ ],
+ 'notifications' => [
+ 'detached' => [
+ 'title' => 'Ayrıldı',
+ ],
+ ],
+ ],
+ 'multiple' => [
+ 'label' => 'Seçiliyi ayır',
+ 'modal' => [
+ 'heading' => ':label seçiliyi ayır ',
+ 'actions' => [
+ 'detach' => [
+ 'label' => 'Seçiliyi ayır',
+ ],
+ ],
+ ],
+ 'notifications' => [
+ 'detached' => [
+ 'title' => 'Ayrıldı',
+ ],
+ ],
+ ],
+];
diff --git a/lang/vendor/filament-actions/tk/dissociate.php b/lang/vendor/filament-actions/tk/dissociate.php
new file mode 100644
index 0000000..4f1de43
--- /dev/null
+++ b/lang/vendor/filament-actions/tk/dissociate.php
@@ -0,0 +1,36 @@
+ [
+ 'label' => 'Ayrıştır',
+ 'modal' => [
+ 'heading' => ':label ayrıştır',
+ 'actions' => [
+ 'dissociate' => [
+ 'label' => 'Ayrıştır',
+ ],
+ ],
+ ],
+ 'notifications' => [
+ 'dissociated' => [
+ 'title' => 'Ayrıştırıldı',
+ ],
+ ],
+ ],
+ 'multiple' => [
+ 'label' => 'Seçiliyi ayrıştır',
+ 'modal' => [
+ 'heading' => ':label seçiliyi ayrıştır',
+ 'actions' => [
+ 'dissociate' => [
+ 'label' => 'Seçiliyi ayrıştır',
+ ],
+ ],
+ ],
+ 'notifications' => [
+ 'dissociated' => [
+ 'title' => 'Ayrıştırıldı',
+ ],
+ ],
+ ],
+];
diff --git a/lang/vendor/filament-actions/tk/edit.php b/lang/vendor/filament-actions/tk/edit.php
new file mode 100644
index 0000000..f20c899
--- /dev/null
+++ b/lang/vendor/filament-actions/tk/edit.php
@@ -0,0 +1,20 @@
+ [
+ 'label' => 'Üýtget',
+ 'modal' => [
+ 'heading' => ':label üýtget',
+ 'actions' => [
+ 'save' => [
+ 'label' => 'Sakla',
+ ],
+ ],
+ ],
+ 'notifications' => [
+ 'saved' => [
+ 'title' => 'Kaydedildi',
+ ],
+ ],
+ ],
+];
diff --git a/lang/vendor/filament-actions/tk/export.php b/lang/vendor/filament-actions/tk/export.php
new file mode 100644
index 0000000..97efc79
--- /dev/null
+++ b/lang/vendor/filament-actions/tk/export.php
@@ -0,0 +1,48 @@
+ 'Dışa Aktar :label',
+ 'modal' => [
+ 'heading' => 'Dışa Aktar :label',
+ 'form' => [
+ 'columns' => [
+ 'label' => 'Sütünler',
+ 'form' => [
+ 'is_enabled' => [
+ 'label' => ':column etkin',
+ ],
+ 'label' => [
+ 'label' => ':column etiketi',
+ ],
+ ],
+ ],
+ ],
+ 'actions' => [
+ 'export' => [
+ 'label' => 'Dışa Aktar',
+ ],
+ ],
+ ],
+ 'notifications' => [
+ 'completed' => [
+ 'title' => 'Dışa Aktarım Tamamlandı',
+ 'actions' => [
+ 'download_csv' => [
+ 'label' => '.csv Olarak İndir',
+ ],
+ 'download_xlsx' => [
+ 'label' => '.xlsx Olarak İndir',
+ ],
+ ],
+ ],
+ 'max_rows' => [
+ 'title' => 'Maksimum Satır Sayısı Aşıldı',
+ 'body' => 'Birden fazla satırı dışa aktaramazsınız.|:count satırı dışa aktaramazsınız.',
+ ],
+ 'started' => [
+ 'title' => 'Dışa Aktarım Başladı',
+ 'body' => 'Dışa aktarım başladı ve 1 satır arka planda işlenecek.|Dışa aktarım başladı ve :count satır arka planda işlenecek.',
+ ],
+ ],
+ 'file_name' => 'export-:export_id-:model',
+];
diff --git a/lang/vendor/filament-actions/tk/force-delete.php b/lang/vendor/filament-actions/tk/force-delete.php
new file mode 100644
index 0000000..7b5de44
--- /dev/null
+++ b/lang/vendor/filament-actions/tk/force-delete.php
@@ -0,0 +1,46 @@
+ [
+ 'label' => 'Kalıcı olarak sil',
+ 'modal' => [
+ 'heading' => ':label kalıcı olarak sil',
+ 'actions' => [
+ 'delete' => [
+ 'label' => 'Kalıcı olarak sil',
+ ],
+ ],
+ ],
+ 'notifications' => [
+ 'deleted' => [
+ 'title' => 'Kayıt kalıcı olarak silindi',
+ ],
+ ],
+ ],
+ 'multiple' => [
+ 'label' => 'Seçiliyi kalıcı olarak sil',
+ 'modal' => [
+ 'heading' => ':label seçiliyi kalıcı olarak sil',
+ 'actions' => [
+ 'delete' => [
+ 'label' => 'Kalıcı olarak sil',
+ ],
+ ],
+ ],
+ 'notifications' => [
+ 'deleted' => [
+ 'title' => 'Kayıtlar kalıcı olarak silindi',
+ ],
+ 'deleted_partial' => [
+ 'title' => ':total kayıttan :count kayıt kalıcı olarak silindi',
+ 'missing_authorization_failure_message' => ':count kayıtı kalıcı olarak silmek için gereken izniniz yok.',
+ 'missing_processing_failure_message' => ':count kayıt kalıcı olarak silinemedi.',
+ ],
+ 'deleted_none' => [
+ 'title' => 'Kayıtlar kalıcı olarak silinemedi',
+ 'missing_authorization_failure_message' => ':count kayıtı kalıcı olarak silmek için gereken izniniz yok.',
+ 'missing_processing_failure_message' => ':count kayıt kalıcı olarak silinemedi.',
+ ],
+ ],
+ ],
+];
diff --git a/lang/vendor/filament-actions/tk/group.php b/lang/vendor/filament-actions/tk/group.php
new file mode 100644
index 0000000..89b52b8
--- /dev/null
+++ b/lang/vendor/filament-actions/tk/group.php
@@ -0,0 +1,7 @@
+ [
+ 'label' => 'Eylemler',
+ ],
+];
diff --git a/lang/vendor/filament-actions/tk/import.php b/lang/vendor/filament-actions/tk/import.php
new file mode 100644
index 0000000..3f52ccf
--- /dev/null
+++ b/lang/vendor/filament-actions/tk/import.php
@@ -0,0 +1,56 @@
+ 'İçe Aktar: :label',
+ 'modal' => [
+ 'heading' => 'İçe Aktar: :label',
+ 'form' => [
+ 'file' => [
+ 'label' => 'Dosya',
+ 'placeholder' => 'Bir CSV dosyası seçin',
+ 'rules' => [
+ 'duplicate_columns' => '{0} Dosya birden fazla boş sütun başlığı içeremez.|{1,*} Dosya tekrar eden sütun başlığı içeremez: :columns.',
+ ],
+ ],
+ 'columns' => [
+ 'label' => 'Sütünler',
+ 'placeholder' => 'Sütunları eşleştirin',
+ ],
+ ],
+ 'actions' => [
+ 'download_example' => [
+ 'label' => 'Örnek CSV Dosyasını İndir',
+ ],
+ 'import' => [
+ 'label' => 'İçe Aktar',
+ ],
+ ],
+ ],
+ 'notifications' => [
+ 'completed' => [
+ 'title' => 'İçe Aktarım Tamamlandı',
+ 'actions' => [
+ 'download_failed_rows_csv' => [
+ 'label' => 'Başarısız satır hakkında bilgileri indir|Başarısız satırlar hakkında bilgileri indir',
+ ],
+ ],
+ ],
+ 'max_rows' => [
+ 'title' => 'Yüklenen Dosya Çok Büyük',
+ 'body' => 'Aynı anda 1\'den fazla satır içeren dosyaları içe aktaramazsınız.|Aynı anda :count\'den fazla satır içeren dosyaları içe aktaramazsınız.',
+ ],
+ 'started' => [
+ 'title' => 'İçe Aktarım Başladı',
+ 'body' => 'İçe aktarım başladı ve 1 satır arka planda işlenecek.|İçe aktarım başladı ve :count satır arka planda işlenecek.',
+ ],
+ ],
+ 'example_csv' => [
+ 'file_name' => ':importer-example',
+ ],
+ 'failure_csv' => [
+ 'file_name' => 'import-:import_id-:csv_name-failed-rows',
+ 'error_header' => 'error',
+ 'system_error' => 'Sistem Hatası',
+ 'column_mapping_required_for_new_record' => ':attribute sütunu dosyadaki bir sütun ile eşleştirilmedi, fakat bu sütun yeni kayıt oluşturmak için gerekli bir sütun.',
+ ],
+];
diff --git a/lang/vendor/filament-actions/tk/modal.php b/lang/vendor/filament-actions/tk/modal.php
new file mode 100644
index 0000000..decd7fe
--- /dev/null
+++ b/lang/vendor/filament-actions/tk/modal.php
@@ -0,0 +1,16 @@
+ 'Bunu yapmak istediğinizden emin misiniz?',
+ 'actions' => [
+ 'cancel' => [
+ 'label' => 'Ýatyr',
+ ],
+ 'confirm' => [
+ 'label' => 'Tassykla',
+ ],
+ 'submit' => [
+ 'label' => 'Iber',
+ ],
+ ],
+];
diff --git a/lang/vendor/filament-actions/tk/notifications.php b/lang/vendor/filament-actions/tk/notifications.php
new file mode 100644
index 0000000..e7f6130
--- /dev/null
+++ b/lang/vendor/filament-actions/tk/notifications.php
@@ -0,0 +1,8 @@
+ [
+ 'title' => 'Çok Fazla Deneme Yapıldı',
+ 'body' => 'Çok fazla deneme yapıldı, lütfen :seconds saniye sonra tekrar deneyin.',
+ ],
+];
diff --git a/lang/vendor/filament-actions/tk/replicate.php b/lang/vendor/filament-actions/tk/replicate.php
new file mode 100644
index 0000000..69a911a
--- /dev/null
+++ b/lang/vendor/filament-actions/tk/replicate.php
@@ -0,0 +1,20 @@
+ [
+ 'label' => 'Çoğalt',
+ 'modal' => [
+ 'heading' => ':label çoğalt',
+ 'actions' => [
+ 'replicate' => [
+ 'label' => 'Çoğalt',
+ ],
+ ],
+ ],
+ 'notifications' => [
+ 'replicated' => [
+ 'title' => 'Kayıt çoğaltıldı',
+ ],
+ ],
+ ],
+];
diff --git a/lang/vendor/filament-actions/tk/restore.php b/lang/vendor/filament-actions/tk/restore.php
new file mode 100644
index 0000000..ff87678
--- /dev/null
+++ b/lang/vendor/filament-actions/tk/restore.php
@@ -0,0 +1,46 @@
+ [
+ 'label' => 'Geri yükle',
+ 'modal' => [
+ 'heading' => ':label geri yükle',
+ 'actions' => [
+ 'restore' => [
+ 'label' => 'Geri yükle',
+ ],
+ ],
+ ],
+ 'notifications' => [
+ 'restored' => [
+ 'title' => 'Kayıt geri yüklendi',
+ ],
+ ],
+ ],
+ 'multiple' => [
+ 'label' => 'Seçileni geri yükle',
+ 'modal' => [
+ 'heading' => ':label seçileni geri yükle',
+ 'actions' => [
+ 'restore' => [
+ 'label' => 'Geri yükle',
+ ],
+ ],
+ ],
+ 'notifications' => [
+ 'restored' => [
+ 'title' => 'Kayıtlar geri yüklendi',
+ ],
+ 'restored_partial' => [
+ 'title' => ':total kayıttan :count kayıt geri yüklendi',
+ 'missing_authorization_failure_message' => ':count kayıt geri yüklemek için gereken izniniz yok.',
+ 'missing_processing_failure_message' => ':count geri yüklenemedi.',
+ ],
+ 'restored_none' => [
+ 'title' => 'Kayıtlar geri yüklenemedi',
+ 'missing_authorization_failure_message' => ':count kayıt geri yüklemek için gereken izniniz yok.',
+ 'missing_processing_failure_message' => ':count geri yüklenemedi.',
+ ],
+ ],
+ ],
+];
diff --git a/lang/vendor/filament-actions/tk/view.php b/lang/vendor/filament-actions/tk/view.php
new file mode 100644
index 0000000..de65985
--- /dev/null
+++ b/lang/vendor/filament-actions/tk/view.php
@@ -0,0 +1,15 @@
+ [
+ 'label' => 'Gör',
+ 'modal' => [
+ 'heading' => ':label gör',
+ 'actions' => [
+ 'close' => [
+ 'label' => 'Ýap',
+ ],
+ ],
+ ],
+ ],
+];
diff --git a/lang/vendor/filament-forms/tk/components.php b/lang/vendor/filament-forms/tk/components.php
new file mode 100644
index 0000000..9ed3f0e
--- /dev/null
+++ b/lang/vendor/filament-forms/tk/components.php
@@ -0,0 +1,498 @@
+ [
+ 'actions' => [
+ 'clone' => [
+ 'label' => 'Klonla',
+ ],
+ 'add' => [
+ 'label' => ':label\'e Ekle',
+ 'modal' => [
+ 'heading' => ':label\'e Ekle',
+ 'actions' => [
+ 'add' => [
+ 'label' => 'Goş',
+ ],
+ ],
+ ],
+ ],
+ 'add_between' => [
+ 'label' => 'Bloklar arasına ekle',
+ 'modal' => [
+ 'heading' => ':label\'e Ekle',
+ 'actions' => [
+ 'add' => [
+ 'label' => 'Goş',
+ ],
+ ],
+ ],
+ ],
+ 'delete' => [
+ 'label' => 'Poz',
+ ],
+ 'edit' => [
+ 'label' => 'Üýtget',
+ 'modal' => [
+ 'heading' => 'Bloğu Düzenle',
+ 'actions' => [
+ 'save' => [
+ 'label' => 'Değişiklikleri Kaydet',
+ ],
+ ],
+ ],
+ ],
+ 'reorder' => [
+ 'label' => 'Taşı',
+ ],
+ 'move_down' => [
+ 'label' => 'Aşağı taşı',
+ ],
+ 'move_up' => [
+ 'label' => 'Yukarı taşı',
+ ],
+ 'collapse' => [
+ 'label' => 'Daralt',
+ ],
+ 'expand' => [
+ 'label' => 'Genişlet',
+ ],
+ 'collapse_all' => [
+ 'label' => 'Tümünü daralt',
+ ],
+ 'expand_all' => [
+ 'label' => 'Tümünü genişlet',
+ ],
+ ],
+ ],
+ 'checkbox_list' => [
+ 'actions' => [
+ 'deselect_all' => [
+ 'label' => 'Tüm seçimi kaldır',
+ ],
+ 'select_all' => [
+ 'label' => 'Hemmesini saýla',
+ ],
+ ],
+ ],
+ 'file_upload' => [
+ 'editor' => [
+ 'actions' => [
+ 'cancel' => [
+ 'label' => 'Ýatyr',
+ ],
+ 'drag_crop' => [
+ 'label' => 'Sürükleme modu "kırpma"',
+ ],
+ 'drag_move' => [
+ 'label' => 'Sürükleme modu "taşıma"',
+ ],
+ 'flip_horizontal' => [
+ 'label' => 'Görüntüyü yatay olarak çevir',
+ ],
+ 'flip_vertical' => [
+ 'label' => 'Görüntüyü dikey olarak çevir',
+ ],
+ 'move_down' => [
+ 'label' => 'Görüntüyü aşağı taşı',
+ ],
+ 'move_left' => [
+ 'label' => 'Görüntüyü sola taşı',
+ ],
+ 'move_right' => [
+ 'label' => 'Görüntüyü sağa taşı',
+ ],
+ 'move_up' => [
+ 'label' => 'Görüntüyü yukarı taşı',
+ ],
+ 'reset' => [
+ 'label' => 'Täzeden',
+ ],
+ 'rotate_left' => [
+ 'label' => 'Görüntüyü sola döndür',
+ ],
+ 'rotate_right' => [
+ 'label' => 'Görüntüyü sağa döndür',
+ ],
+ 'set_aspect_ratio' => [
+ 'label' => 'En boy oranını :ratio olarak ayarla',
+ ],
+ 'save' => [
+ 'label' => 'Sakla',
+ ],
+ 'zoom_100' => [
+ 'label' => 'Görüntüyü %100 yakınlaştır',
+ ],
+ 'zoom_in' => [
+ 'label' => 'Yakınlaştır',
+ ],
+ 'zoom_out' => [
+ 'label' => 'Uzaklaştır',
+ ],
+ ],
+ 'fields' => [
+ 'height' => [
+ 'label' => 'Yükseklik',
+ 'unit' => 'px',
+ ],
+ 'rotation' => [
+ 'label' => 'Döndürme',
+ 'unit' => '°',
+ ],
+ 'width' => [
+ 'label' => 'Genişlik',
+ 'unit' => 'px',
+ ],
+ 'x_position' => [
+ 'label' => 'X',
+ 'unit' => 'px',
+ ],
+ 'y_position' => [
+ 'label' => 'Y',
+ 'unit' => 'px',
+ ],
+ ],
+ 'aspect_ratios' => [
+ 'label' => 'En boy oranı',
+ 'no_fixed' => [
+ 'label' => 'Serbest',
+ ],
+ ],
+ 'svg' => [
+ 'messages' => [
+ 'confirmation' => 'SVG dosyalarını düzenleme, ölçeklendirme yaptığınızda kalite kaybına neden olabileceği için tavsiye edilmez.\\n Devam etmek istediğinize emin misiniz?',
+ 'disabled' => 'SVG dosyalarını düzenleme, ölçeklendirme yaptığınızda kalite kaybına neden olduğu için engellendi.',
+ ],
+ ],
+ ],
+ ],
+ 'key_value' => [
+ 'actions' => [
+ 'add' => [
+ 'label' => 'Satır ekle',
+ ],
+ 'delete' => [
+ 'label' => 'Satır sil',
+ ],
+ 'reorder' => [
+ 'label' => 'Satır sırala',
+ ],
+ ],
+ 'fields' => [
+ 'key' => [
+ 'label' => 'Anahtar',
+ ],
+ 'value' => [
+ 'label' => 'Değer',
+ ],
+ ],
+ ],
+ 'markdown_editor' => [
+ 'file_attachments_accepted_file_types_message' => 'Yüklenen dosyalar şu türlerden olmalıdır: :values.',
+ 'file_attachments_max_size_message' => 'Yüklenen dosyalar :max kilobayttan büyük olmamalıdır.',
+ 'tools' => [
+ 'attach_files' => 'Dosya ekle',
+ 'blockquote' => 'Alıntı',
+ 'bold' => 'Kalın',
+ 'bullet_list' => 'Sanaw',
+ 'code_block' => 'Kod bloğu',
+ 'heading' => 'Başlık',
+ 'italic' => 'Eğik',
+ 'link' => 'Bağlantı',
+ 'ordered_list' => 'Numaralı liste',
+ 'redo' => 'Yinele',
+ 'strike' => 'Üstü çizili',
+ 'table' => 'Tablo',
+ 'undo' => 'Geri al',
+ ],
+ ],
+ 'modal_table_select' => [
+ 'actions' => [
+ 'select' => [
+ 'label' => 'Saýla',
+ 'actions' => [
+ 'select' => [
+ 'label' => 'Saýla',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'radio' => [
+ 'boolean' => [
+ 'true' => 'Hawa',
+ 'false' => 'Ýok',
+ ],
+ ],
+ 'repeater' => [
+ 'actions' => [
+ 'add' => [
+ 'label' => ':label\'e ekle',
+ ],
+ 'add_between' => [
+ 'label' => 'Arasına yerleştir',
+ ],
+ 'delete' => [
+ 'label' => 'Poz',
+ ],
+ 'clone' => [
+ 'label' => 'Klonla',
+ ],
+ 'reorder' => [
+ 'label' => 'Taşı',
+ ],
+ 'move_down' => [
+ 'label' => 'Aşağı taşı',
+ ],
+ 'move_up' => [
+ 'label' => 'Yukarı taşı',
+ ],
+ 'collapse' => [
+ 'label' => 'Daralt',
+ ],
+ 'expand' => [
+ 'label' => 'Genişlet',
+ ],
+ 'collapse_all' => [
+ 'label' => 'Tümünü daralt',
+ ],
+ 'expand_all' => [
+ 'label' => 'Tümünü genişlet',
+ ],
+ ],
+ ],
+ 'rich_editor' => [
+ 'actions' => [
+ 'attach_files' => [
+ 'label' => 'Dosya yükle',
+ 'modal' => [
+ 'heading' => 'Dosya yükle',
+ 'form' => [
+ 'file' => [
+ 'label' => [
+ 'new' => 'Dosya',
+ 'existing' => 'Dosyayı değiştir',
+ ],
+ ],
+ 'alt' => [
+ 'label' => [
+ 'new' => 'Açıklama metni',
+ 'existing' => 'Açıklama metnini değiştir',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'custom_block' => [
+ 'modal' => [
+ 'actions' => [
+ 'insert' => [
+ 'label' => 'Goş',
+ ],
+ 'save' => [
+ 'label' => 'Sakla',
+ ],
+ ],
+ ],
+ ],
+ 'grid' => [
+ 'label' => 'Grid',
+ 'modal' => [
+ 'heading' => 'Grid',
+ 'form' => [
+ 'preset' => [
+ 'label' => 'Ön ayar',
+ 'placeholder' => 'Yok',
+ 'options' => [
+ 'two' => 'İki',
+ 'three' => 'Üç',
+ 'four' => 'Dört',
+ 'five' => 'Beş',
+ 'two_start_third' => 'İki (Başta Üçte Bir)',
+ 'two_end_third' => 'İki (Sonda Üçte Bir)',
+ 'two_start_fourth' => 'İki (Başta Dörtte Bir)',
+ 'two_end_fourth' => 'İki (Sonda Dörtte Bir)',
+ ],
+ ],
+ 'columns' => [
+ 'label' => 'Sütünler',
+ ],
+ 'from_breakpoint' => [
+ 'label' => 'Kesme noktasından',
+ 'options' => [
+ 'default' => 'Hemmesi',
+ 'sm' => 'Küçük (sm)',
+ 'md' => 'Orta (md)',
+ 'lg' => 'Büyük (lg)',
+ 'xl' => 'Çok büyük (xl)',
+ '2xl' => 'İki kat büyük (2xl)',
+ ],
+ ],
+ 'is_asymmetric' => [
+ 'label' => 'İki asimetrik sütun',
+ ],
+ 'start_span' => [
+ 'label' => 'Başlangıç aralığı',
+ ],
+ 'end_span' => [
+ 'label' => 'Bitiş aralığı',
+ ],
+ ],
+ ],
+ ],
+ 'link' => [
+ 'label' => 'Üýtget',
+ 'modal' => [
+ 'heading' => 'Bağlantı',
+ 'form' => [
+ 'url' => [
+ 'label' => 'URL',
+ ],
+ 'should_open_in_new_tab' => [
+ 'label' => 'Yeni sekmede aç',
+ ],
+ ],
+ ],
+ ],
+ 'text_color' => [
+ 'label' => 'Yazı rengi',
+ 'modal' => [
+ 'heading' => 'Yazı rengi',
+ 'form' => [
+ 'color' => [
+ 'label' => 'Renk',
+ ],
+ 'custom_color' => [
+ 'label' => 'Özel renk',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'file_attachments_accepted_file_types_message' => 'Yüklenen dosyalar şu türlerden olmalıdır: :values.',
+ 'file_attachments_max_size_message' => 'Yüklenen dosyalar :max kilobayttan büyük olmamalıdır.',
+ 'no_merge_tag_search_results_message' => 'Uygun birleşme etiketi bulunamadı.',
+ 'mentions' => [
+ 'no_options_message' => 'Seçenek bulunamadı.',
+ 'no_search_results_message' => 'Aramanızla eşleşen sonuç bulunamadı.',
+ 'search_prompt' => 'Aramak için yazmaya başlayın...',
+ 'searching_message' => 'Aranıyor...',
+ ],
+ 'tools' => [
+ 'align_center' => 'Ortaya hizala',
+ 'align_end' => 'Sona hizala',
+ 'align_justify' => 'İki yana yasla',
+ 'align_start' => 'Başa hizala',
+ 'attach_files' => 'Dosya ekle',
+ 'blockquote' => 'Alıntı',
+ 'bold' => 'Kalın',
+ 'bullet_list' => 'Sırasız liste',
+ 'clear_formatting' => 'Biçimlendirmeyi temizle',
+ 'code' => 'Kod',
+ 'code_block' => 'Kod bloğu',
+ 'custom_blocks' => 'Bloklar',
+ 'details' => 'Jikme-jik',
+ 'h1' => 'Başlık',
+ 'h2' => 'Başlık 2',
+ 'h3' => 'Alt başlık',
+ 'grid' => 'Grid',
+ 'grid_delete' => 'Grid\'i sil',
+ 'highlight' => 'Vurgula',
+ 'horizontal_rule' => 'Yatay çizgi',
+ 'italic' => 'Eğik',
+ 'lead' => 'Öne çıkan metin',
+ 'link' => 'Bağlantı',
+ 'merge_tags' => 'Birleşme etiketleri',
+ 'ordered_list' => 'Sıralı liste',
+ 'redo' => 'Yinele',
+ 'small' => 'Küçük metin',
+ 'strike' => 'Üstü çizili',
+ 'subscript' => 'Alt simge',
+ 'superscript' => 'Üst simge',
+ 'table' => 'Tablo',
+ 'table_delete' => 'Tabloyu sil',
+ 'table_add_column_before' => 'Öncesine sütun ekle',
+ 'table_add_column_after' => 'Sonrasına sütun ekle',
+ 'table_delete_column' => 'Sütunu sil',
+ 'table_add_row_before' => 'Üstüne satır ekle',
+ 'table_add_row_after' => 'Altına satır ekle',
+ 'table_delete_row' => 'Satırı sil',
+ 'table_merge_cells' => 'Hücreleri birleştir',
+ 'table_split_cell' => 'Hücreyi böl',
+ 'table_toggle_header_row' => 'Başlık satırını aç/kapat',
+ 'table_toggle_header_cell' => 'Başlık hücresini aç/kapat',
+ 'text_color' => 'Yazı rengi',
+ 'underline' => 'Altı çizili',
+ 'undo' => 'Geri al',
+ ],
+ 'uploading_file_message' => 'Dosya yükleniyor...',
+ ],
+ 'select' => [
+ 'actions' => [
+ 'create_option' => [
+ 'label' => 'Döret',
+ 'modal' => [
+ 'heading' => 'Döret',
+ 'actions' => [
+ 'create' => [
+ 'label' => 'Döret',
+ ],
+ 'create_another' => [
+ 'label' => 'Oluştur & Yeni oluştur',
+ ],
+ ],
+ ],
+ ],
+ 'edit_option' => [
+ 'label' => 'Üýtget',
+ 'modal' => [
+ 'heading' => 'Üýtget',
+ 'actions' => [
+ 'save' => [
+ 'label' => 'Sakla',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'boolean' => [
+ 'true' => 'Hawa',
+ 'false' => 'Ýok',
+ ],
+ 'loading_message' => 'Ýüklenýär...',
+ 'max_items_message' => 'Sadece :count adet seçilebilir.',
+ 'no_options_message' => 'Seçenek bulunamadı.',
+ 'no_search_results_message' => 'Arama kriterlerinize uyan seçenek yok.',
+ 'placeholder' => 'Bir seçenek seçin',
+ 'searching_message' => 'Aranıyor...',
+ 'search_prompt' => 'Aramak için yazmaya başlayın...',
+ ],
+ 'tags_input' => [
+ 'actions' => [
+ 'delete' => [
+ 'label' => 'Poz',
+ ],
+ ],
+ 'placeholder' => 'Yeni etiket',
+ ],
+ 'text_input' => [
+ 'actions' => [
+ 'copy' => [
+ 'label' => 'Göçür',
+ 'message' => 'Göçürildi',
+ ],
+ 'hide_password' => [
+ 'label' => 'Şifreyi gizle',
+ ],
+ 'show_password' => [
+ 'label' => 'Şifreyi göster',
+ ],
+ ],
+ ],
+ 'toggle_buttons' => [
+ 'boolean' => [
+ 'true' => 'Hawa',
+ 'false' => 'Ýok',
+ ],
+ ],
+];
diff --git a/lang/vendor/filament-forms/tk/validation.php b/lang/vendor/filament-forms/tk/validation.php
new file mode 100644
index 0000000..c4e8b18
--- /dev/null
+++ b/lang/vendor/filament-forms/tk/validation.php
@@ -0,0 +1,8 @@
+ [
+ 'must_be_selected' => 'En az 1 adet :attribute alanı seçmelisiniz.',
+ 'only_one_must_be_selected' => 'Sadece 1 adet :attribute alanı seçilmelidir.',
+ ],
+];
diff --git a/lang/vendor/filament-infolists/tk/components.php b/lang/vendor/filament-infolists/tk/components.php
new file mode 100644
index 0000000..38517a9
--- /dev/null
+++ b/lang/vendor/filament-infolists/tk/components.php
@@ -0,0 +1,24 @@
+ [
+ 'text' => [
+ 'actions' => [
+ 'collapse_list' => ':count kayıt az göster',
+ 'expand_list' => ':count kayıt daha göster',
+ ],
+ 'more_list_items' => 've :count kayıt daha',
+ ],
+ 'key_value' => [
+ 'columns' => [
+ 'key' => [
+ 'label' => 'Anahtar',
+ ],
+ 'value' => [
+ 'label' => 'Değer',
+ ],
+ ],
+ 'placeholder' => 'Kayıt yok',
+ ],
+ ],
+];
diff --git a/lang/vendor/filament-notifications/tk/database.php b/lang/vendor/filament-notifications/tk/database.php
new file mode 100644
index 0000000..c2c5a10
--- /dev/null
+++ b/lang/vendor/filament-notifications/tk/database.php
@@ -0,0 +1,19 @@
+ [
+ 'heading' => 'Habarnamalar',
+ 'actions' => [
+ 'clear' => [
+ 'label' => 'Arassala',
+ ],
+ 'mark_all_as_read' => [
+ 'label' => 'Tümünü okundu işaretle',
+ ],
+ ],
+ 'empty' => [
+ 'heading' => 'Bildirim yok',
+ 'description' => 'Lütfen sonra kontrol ediniz',
+ ],
+ ],
+];
diff --git a/lang/vendor/filament-panels/tk/auth/http/controllers/block-email-change-verification-controller.php b/lang/vendor/filament-panels/tk/auth/http/controllers/block-email-change-verification-controller.php
new file mode 100644
index 0000000..65a9a91
--- /dev/null
+++ b/lang/vendor/filament-panels/tk/auth/http/controllers/block-email-change-verification-controller.php
@@ -0,0 +1,14 @@
+ [
+ 'blocked' => [
+ 'title' => 'E-posta adresi güncelleme isteği engellendi',
+ 'body' => 'Başarılı bir şekilde E-posta adresinizin :email olarak güncellenme isteğini engellediniz. Eğer bu isteği siz yapmadıysanız lütfen bizimle iletişime geçin.',
+ ],
+ 'failed' => [
+ 'title' => 'E-posta adresi güncelleme isteği engellenirken bir hata oluştu',
+ 'body' => 'Ne yazık ki, E-posta adresinizin :email olarak güncellenme isteğini engelleme işleminiz başarısız oldu, siz engelleyemeden E-posta adresi onaylandı. Eğer bu isteği siz yapmadıysanız lütfen bizimle iletişime geçin.',
+ ],
+ ],
+];
diff --git a/lang/vendor/filament-panels/tk/auth/http/controllers/email-change-verification-controller.php b/lang/vendor/filament-panels/tk/auth/http/controllers/email-change-verification-controller.php
new file mode 100644
index 0000000..43c1e89
--- /dev/null
+++ b/lang/vendor/filament-panels/tk/auth/http/controllers/email-change-verification-controller.php
@@ -0,0 +1,10 @@
+ [
+ 'verified' => [
+ 'title' => 'E-posta adresi güncellendi',
+ 'body' => 'E-posta adresiniz başarıyla :email olarak güncellendi.',
+ ],
+ ],
+];
diff --git a/lang/vendor/filament-panels/tk/auth/multi-factor/app/actions/disable.php b/lang/vendor/filament-panels/tk/auth/multi-factor/app/actions/disable.php
new file mode 100644
index 0000000..7673626
--- /dev/null
+++ b/lang/vendor/filament-panels/tk/auth/multi-factor/app/actions/disable.php
@@ -0,0 +1,40 @@
+ 'Ýap',
+ 'modal' => [
+ 'heading' => 'Doğrulama uygulamasını devre dışı bırak',
+ 'description' => 'Doğrulama uygulamasını devre dışı bırakmak istediğinize emin misiniz? Bunu devre dışı bırakmak hesabınızda bulunan ekstra koruma katmanını kaldıracaktır.',
+ 'form' => [
+ 'code' => [
+ 'label' => 'Doğrulama uygulamanızdaki 6 haneli kodu girin',
+ 'validation_attribute' => 'kod',
+ 'actions' => [
+ 'use_recovery_code' => [
+ 'label' => 'Bunun yerine kurtarma kodu girin',
+ ],
+ ],
+ 'messages' => [
+ 'invalid' => 'Girmiş olduğunuz kod geçersiz.',
+ ],
+ ],
+ 'recovery_code' => [
+ 'label' => 'Veya, bir kurtarma kodu girin',
+ 'validation_attribute' => 'kurtarma kodu',
+ 'messages' => [
+ 'invalid' => 'Girmiş olduğunuz kurtarma kodu geçersiz.',
+ ],
+ ],
+ ],
+ 'actions' => [
+ 'submit' => [
+ 'label' => 'Uygulamayı devre dışı bırak',
+ ],
+ ],
+ ],
+ 'notifications' => [
+ 'disabled' => [
+ 'title' => 'Doğrulama uygulaması devre dışı bırakıldı',
+ ],
+ ],
+];
diff --git a/lang/vendor/filament-panels/tk/auth/multi-factor/app/actions/regenerate-recovery-codes.php b/lang/vendor/filament-panels/tk/auth/multi-factor/app/actions/regenerate-recovery-codes.php
new file mode 100644
index 0000000..fb4a158
--- /dev/null
+++ b/lang/vendor/filament-panels/tk/auth/multi-factor/app/actions/regenerate-recovery-codes.php
@@ -0,0 +1,43 @@
+ 'Kurtarma kodlarını yeniden oluştur',
+ 'modal' => [
+ 'heading' => 'Kurtarma kodlarını yeniden oluştur',
+ 'description' => 'Eğer kurtarma kodlarınızı kaybederseniz buradan yeniden oluşturabilirsiniz. Eski kodlarınız devre dışı kalacaktır.',
+ 'form' => [
+ 'code' => [
+ 'label' => 'Doğrulama uygulamanızdaki 6 haneli kodu girin',
+ 'validation_attribute' => 'kod',
+ 'messages' => [
+ 'invalid' => 'Girmiş olduğunuz kod geçersiz.',
+ ],
+ ],
+ 'password' => [
+ 'label' => 'Veya, geçerli şifrenizi girin',
+ 'validation_attribute' => 'şifre',
+ ],
+ ],
+ 'actions' => [
+ 'submit' => [
+ 'label' => 'Kodları yeniden oluştur',
+ ],
+ ],
+ ],
+ 'notifications' => [
+ 'regenerated' => [
+ 'title' => 'Yeni kurtarma kodları oluşturuldu',
+ ],
+ ],
+ 'show_new_recovery_codes' => [
+ 'modal' => [
+ 'heading' => 'Yeni kodlar',
+ 'description' => 'Lütfen bu kodları güvenli bir şekilde saklayın. Bu kodlar size sadece bir kere gösterilecek ve eğer doğrulama uygulamanıza erişiminizi kaybederseniz bu kodları kullanmanız gerekecek:',
+ 'actions' => [
+ 'submit' => [
+ 'label' => 'Ýap',
+ ],
+ ],
+ ],
+ ],
+];
diff --git a/lang/vendor/filament-panels/tk/auth/multi-factor/app/actions/set-up.php b/lang/vendor/filament-panels/tk/auth/multi-factor/app/actions/set-up.php
new file mode 100644
index 0000000..ab19cd1
--- /dev/null
+++ b/lang/vendor/filament-panels/tk/auth/multi-factor/app/actions/set-up.php
@@ -0,0 +1,44 @@
+ 'Kur',
+ 'modal' => [
+ 'heading' => 'Doğrulama uygulaması kur',
+ 'description' => 'Devam etmek için Google Authenticator gibi (
- Sending messages… + {{ __('filament.send_sms.progress.sending') }}
{{ $campaignProgressLabel }} diff --git a/tests/Unit/SmsMessageAnalyzerTest.php b/tests/Unit/SmsMessageAnalyzerTest.php index 928304e..080f9aa 100644 --- a/tests/Unit/SmsMessageAnalyzerTest.php +++ b/tests/Unit/SmsMessageAnalyzerTest.php @@ -64,9 +64,9 @@ class SmsMessageAnalyzerTest extends TestCase public static function summaryProvider(): array { return [ - 'empty' => ['', '0 characters'], - 'gsm' => ['Hello', '5 characters · 1 SMS'], - 'unicode' => ['你好', '2 characters · 1 SMS'], + 'empty' => ['', '0 harp'], + 'gsm' => ['Hello', '5 harp · 1 SMS'], + 'unicode' => ['你好', '2 harp · 1 SMS'], ]; } }