Files
opensourcepos/app/Language/tr/Items.php
objecttothis 6db3dde491 Bugfix tax names (#4677)
bugfix(items, validation): reject unsafe tax names and fix payments temp table collision

- Add unicode_alpha_numeric_punct rule (OSPOSRules) to allow accented/CJK
  chars in text fields while blocking HTML-unsafe chars (<, >) as
  defense-in-depth against injection
- Items controller: extract validateItemFields/validateBulkUpdateFields,
  validate tax_names on save and bulk update using new rule; add shared
  validateFields helper in Secure_Controller to DRY up validation +
  JSON error response
- Escape tax_group output in sales/quote.php and receipt_email.php views
  to harden output encoding at render time
- Rename sales_payments_temp -> sales_report_payments_temp (Summary_report)
  and -> sales_search_payments_temp (Sale model) to avoid name collision
  between concurrently-created temp tables
- AGENTS.md: document alignment rule for => columns when inserting new
  language keys

Tests:
- Add ItemsControllerTest covering postSave/bulkupdate tax_names validation
- Reject <, > in tax_names on /items/save and /items/bulkupdate
- Verify unicode and apostrophe-containing tax names are accepted
- Cover CSV import helpers: header generation (basic, multiple locations,
  attributes), stock-location/attribute header builders, get_csv_file
  parsing (plain, BOM-prefixed, multi-row)
- Validate required-header detection for import templates
- Remove outdated tax name test from SalesControllerTest
- Simplify Database class references in SalesControllerTest

i18n:
- Add tax_name_invalid translation to Items.php for 20+ locales, inserted
  alphabetically after tax_category in each file
- Normalize quote style in ar-EG/Items.php to single quotes
- Add ka/Items.php Georgian locale scaffold

Signed-off-by: objecttothis <17935339+objecttothis@users.noreply.github.com>
2026-09-01 10:59:29 +04:00

125 lines
8.0 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
return [
'add_minus' => 'Eklenen/Çıkarılan Adet.',
'allow_alt_description' => 'Dip Nota izin ver',
'amount_entry' => 'Miktar Girişi',
'bulk_edit' => 'Toplu Düzenleme',
'buy_price_required' => 'Alış Fiyatı zorunlu alandır.',
'cannot_be_deleted' => 'Seçili ürünler silinemedi, bazı ürünlerin satışı var.',
'cannot_find_item' => 'Ürün bilgisi bulunamadı.',
'categories' => '',
'category' => 'Kategori',
'category_new' => '',
'category_required' => 'Kategori zorunlu alandır.',
'change_all_to_allow_alt_desc' => 'Tümünde dip nota izin ver.',
'change_all_to_not_allow_allow_desc' => 'Tümünde dip nota izin verme.',
'change_all_to_serialized' => 'Tümünü seri numaralı yap',
'change_all_to_unserialized' => 'Tümünü seri numarasız yap',
'change_image' => 'Resmi değiştir',
'confirm_bulk_edit' => 'Seçili tüm ürünleri düzenlemek istediğinize emin misiniz?',
'confirm_bulk_edit_wipe_taxes' => 'Tüm ürün vergi bilgileri değiştirilecektir.',
'confirm_delete' => 'Seçili ürünleri silmek istediğinize emin misiniz?',
'confirm_restore' => 'Seçili ürünleri onarmak istediğinize emin misiniz?',
'cost_price' => 'Toptan Fiyatı',
'cost_price_number' => 'Toptan Fiyatı sayı olmalıdır.',
'cost_price_required' => 'Toptan Fiyatı zorunlu alandır.',
'count' => 'Stoğu Güncelle',
'csv_import_failed' => 'CSV aktarım hatası',
'csv_import_invalid_location' => '',
'csv_import_nodata_wrongformat' => 'Yüklenen dosya herhangi bir veri içermiyor veya hatalı formatta.',
'csv_import_partially_failed' => 'Bazı ürünler aktarılamadı. Aktarılamayanlar listesi.',
'csv_import_success' => 'Ürün aktarımı başarılı.',
'current_quantity' => 'Var Olan Adet',
'default_pack_name' => 'Her biri',
'description' => 'Tanım',
'details_count' => 'Stok Hareket Detayları',
'do_nothing' => 'Değiştirme',
'edit' => '',
'edit_fields_you_want_to_update' => 'Seçili TÜM ürünler için düzenlemek istediğiniz alanları girin.',
'edit_multiple_items' => 'Çoklu Ürün Güncelleme',
'empty_upc_items' => 'Ürün kodu olmayan ürünler',
'error_adding_updating' => 'Ürün ekleme/düzenleme hatası',
'error_updating_multiple' => 'Ürün düzenleme hatası',
'generate_barcodes' => 'Barkod Üret',
'hsn_code' => 'Harmonize Sistem İsimlendirme',
'image' => 'Avatar',
'import_items_csv' => 'CSV dosyasından ürün aktar',
'info_provided_by' => 'Bilgi sağlayan',
'inventory' => 'Stok',
'inventory_CSV_import_quantity' => 'CSV\'den Alınan Miktar',
'inventory_comments' => 'Yorumlar',
'inventory_data_tracking' => 'Stok Takibi',
'inventory_date' => 'Tarih',
'inventory_employee' => 'Personel',
'inventory_in_out_quantity' => 'Giriş/Çıkış Sayısı',
'inventory_remarks' => 'Notlar',
'is_deleted' => 'Silinmiş',
'is_printed' => '',
'is_serialized' => 'Seri Numaralı Ürün',
'item' => 'Ürün',
'item_id' => '',
'item_number' => 'UPC/EAN/ISBN',
'item_number_duplicate' => 'Ürün numarası veritabanında zaten var.',
'item_number_invalid' => 'Ürün numarası izin verilmeyen karakterler içeriyor.',
'kit' => 'Set',
'location' => 'Yer',
'low_inventory_items' => 'Stokta Olmayan Ürünler',
'low_sell_item' => 'Düşük satış fiyatı',
'manually_editing_of_quantity' => 'Elle adet düzeltme',
'markup' => '',
'name' => 'Ürün Adı',
'name_required' => 'Ürün Adı zorunlu alandır.',
'new' => 'Yeni Ürün',
'no_description_items' => 'Tanımı olmayan ürünler',
'no_items_to_display' => 'Gösterecek Ürün Yok.',
'none' => 'Hiçbiri',
'none_selected' => 'Düzenlemek için ürün seçmediniz',
'nonstock' => 'Stokta Olmayan',
'number_information' => 'Ürün No',
'number_required' => 'Barkod alanı zorunludur.',
'one_or_multiple' => 'ürün',
'pack_name' => 'Paket adı',
'qty_per_pack' => 'Paket başına miktar',
'quantity' => 'Adet',
'quantity_number' => 'Adet sayı olmalıdır.',
'quantity_required' => 'Adet zorunlu alandır.',
'receiving_quantity' => 'Alım miktarı',
'remove_image' => 'Resmi kaldır',
'reorder_level' => 'Düşük Stok',
'reorder_level_number' => 'Düşük stok sayı olmalıdır.',
'reorder_level_required' => 'Düşük Stok zorunlu alandır.',
'retrive_item_info' => 'Ürün Bilgisi Getir',
'sales_tax_1' => 'Satış Vergisi',
'sales_tax_2' => 'Satış Vergisi 2',
'search_attributes' => 'Özellikleri Ara',
'select_image' => 'Resim Seç',
'serialized_items' => 'Seri Numaralı Ürünler',
'standard' => 'Standart',
'stock' => 'Stok',
'stock_location' => 'Mağaza Yeri',
'stock_type' => 'Stok Tipi',
'successful_adding' => 'Ürün ekleme başarılı',
'successful_bulk_edit' => 'Seçili ürün düzenlendi',
'successful_deleted' => 'Silme başarılı',
'successful_updating' => 'Ürün düzenleme başarılı',
'supplier' => 'Sağlayıcı',
'tax_1' => 'Vergi 1',
'tax_2' => 'Vergi 2',
'tax_3' => '',
'tax_category' => 'Vergi Kategorisi',
'tax_name_invalid' => 'Vergi adı izin verilmeyen karakterler içeriyor.',
'tax_percent' => 'Vergi Yüzdesi',
'tax_percent_number' => 'Vergi Yüzdesi ondalıklı sayı olmalı',
'tax_percent_required' => 'Vergi Oranı zorunlu alandır.',
'tax_percents' => 'Vergi Yüzdesi',
'temp' => 'Geçici',
'type' => 'Ürün Tipi',
'unit_price' => 'Satış Fiyatı',
'unit_price_number' => 'Fiyat sayı olmalıdır (9.90).',
'unit_price_required' => 'Satış Fiyatı zorunlu alandır.',
'upc_database' => 'UPC Veritabanı',
'update' => 'Ürün Güncelle',
'use_inventory_menu' => 'Stok Menüsünü Kullan',
];