Skip to content

Add Turkish translations#2271

Merged
glennjacobs merged 2 commits intolunarphp:1.xfrom
cavdarfurkan:feature/turkish_translation
Nov 11, 2025
Merged

Add Turkish translations#2271
glennjacobs merged 2 commits intolunarphp:1.xfrom
cavdarfurkan:feature/turkish_translation

Conversation

@cavdarfurkan
Copy link
Contributor

@cavdarfurkan cavdarfurkan commented Aug 14, 2025

This PR adds Turkish translation files to the project.

Summary by CodeRabbit

  • New Features
    • Comprehensive Turkish (tr) locale added across the admin UI (resources, forms, tables, pages, widgets, relation managers) covering catalog, sales, settings and staff areas.
    • Turkish translations added for core exception messages.
    • Turkish locale support added for table‑rate shipping (navigation, shipping methods, zones, exclusion lists, relation managers).

@vercel
Copy link

vercel bot commented Aug 14, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
lunar-docs Ready Preview Comment Aug 15, 2025 0:26am

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Aug 14, 2025

Walkthrough

Adds many Turkish (tr) localization files across admin, core, and table-rate-shipping packages. Files supply translation arrays for resources, forms, tables, actions, pages, widgets, components, exceptions, and plugin UIs. No functional or logic changes — data-only localization additions.

Changes

Cohort / File(s) Summary of Changes
Admin TR translations
packages/admin/resources/lang/tr/*
Adds comprehensive Turkish translation files for admin UI, including: actions.php, activity.php, address.php, attribute.php, attributegroup.php, auth.php, brand.php, channel.php, collection.php, collectiongroup.php, components.php, currency.php, customer.php, customergroup.php, discount.php, fieldtypes.php, global.php, language.php, order.php, product.php, productoption.php, producttype.php, productvariant.php, relationmanagers.php, staff.php, tag.php, tax.php, taxclass.php, taxrate.php, taxzone.php, user.php, widgets.php. Each file returns a PHP array of Turkish locale strings for the corresponding admin features.
Core TR translations
packages/core/resources/lang/tr/*
Adds Turkish core translations: base.php (media collection titles) and exceptions.php (Turkish exception/error message mappings with placeholders).
Table-rate-shipping TR translations
packages/table-rate-shipping/resources/lang/tr/*
Adds Turkish translations for the table-rate-shipping package: plugin.php, relationmanagers.php, shippingexclusionlist.php, shippingmethod.php, shippingzone.php — navigation and relation-manager UI strings and form/table labels.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Tip

🔌 Remote MCP (Model Context Protocol) integration is now available!

Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats.

✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 8

🧹 Nitpick comments (49)
packages/table-rate-shipping/resources/lang/tr/shippingexclusionlist.php (1)

15-17: Consider clarifying the count label to match the key semantics.

The key is exclusions_count, which suggests the number of exclusions, not necessarily products. “Ürün Sayısı” may be misleading if exclusions aren’t strictly per product.

Apply if accurate in your UI:

-            'label' => 'Ürün Sayısı',
+            'label' => 'İstisna Sayısı',
packages/admin/resources/lang/tr/activity.php (1)

12-12: Prefer “Günlük” instead of “Log”.

“Günlük” is a more natural Turkish term for “Log”.

Apply:

-        'log' => 'Log',
+        'log' => 'Günlük',
packages/admin/resources/lang/tr/taxclass.php (1)

26-31: Title casing: align modal/error title with other title-cased labels.

Most labels use Title Case (e.g., “Ad”, “Varsayılan”). Adjusting the delete error title improves visual consistency.

Apply this diff:

-            'title' => 'Vergi sınıfı silinemez',
+            'title' => 'Vergi Sınıfı Silinemez',
packages/admin/resources/lang/tr/user.php (1)

22-27: Terminology consistency: choose either “Şifre” or “Parola” across TR locale.

Both are common in Turkish; pick one term and use it consistently across all TR translations to avoid mixed terminology.

packages/admin/resources/lang/tr/attributegroup.php (2)

19-21: Optional: Consider “Sıra” instead of “Pozisyon” for UI consistency

“Sıra” is a more common UI term for ordering/position in Turkish admin panels.

Apply this diff to both occurrences:

-            'label' => 'Pozisyon',
+            'label' => 'Sıra',

Also applies to: 34-36


42-42: Optional phrasing improvement for the protected delete message

The sentence can be made slightly clearer/formal in Turkish.

-                'error_protected' => 'Bu özellik grubu silinemez çünkü ilişkili özellikler var.',
+                'error_protected' => 'Bu özellik grubu, ilişkili özellikler bulunduğu için silinemez.',
packages/table-rate-shipping/resources/lang/tr/shippingzone.php (2)

25-27: Align “states” label with options wording

Elsewhere you use “Eyaletler / İller”; mirroring that here improves consistency.

-        'states' => [
-            'label' => 'Eyaletler',
-        ],
+        'states' => [
+            'label' => 'Eyaletler / İller',
+        ],

33-33: Nit: end helper sentence with a period

Minor punctuation consistency.

-            'helper' => 'Her posta kodunu yeni bir satırda listeleyin. NW* gibi joker karakterleri destekler',
+            'helper' => 'Her posta kodunu yeni bir satırda listeleyin. NW* gibi joker karakterleri destekler.',
packages/admin/resources/lang/tr/address.php (2)

25-27: Unify “line_one” label with form labels

Table shows “Adres” while form uses “Satır Bir”. Consider aligning to “Satır Bir” for consistency with line_two/three.

-        'line_one' => [
-            'label' => 'Adres',
-        ],
+        'line_one' => [
+            'label' => 'Satır Bir',
+        ],

40-42: Optional: Clarify “state” label to cover both state/province

“Eyalet / İl” better reflects global addresses in Turkish contexts.

-        'state' => [
-            'label' => 'Eyalet',
-        ],
+        'state' => [
+            'label' => 'Eyalet / İl',
+        ],

Also applies to: 85-87

packages/admin/resources/lang/tr/auth.php (1)

21-21: Grammar improvement for attribute management description.

Use the accusative for “özellikler” and parallelize the verb forms.

-'permissions.settings:manage-attributes.description' => 'Personelin ek özellikler düzenlemesi ve oluşturmasına izin verir',
+'permissions.settings:manage-attributes.description' => 'Personelin ek özellikleri düzenlemesine ve oluşturmasına izin verir',
packages/admin/resources/lang/tr/fieldtypes.php (2)

7-12: Fix indentation for the lookups block for readability.

Minor indentation misalignment under the dropdown.form section.

-                'lookups' => [
-                'label' => 'Arama Tablosu',
-                'key_label' => 'Etiket',
-                'value_label' => 'Değer',
-            ],
+            'lookups' => [
+                'label' => 'Arama Tablosu',
+                'key_label' => 'Etiket',
+                'value_label' => 'Değer',
+            ],

57-60: Clarify placeholder for MIME types.

More natural phrasing in Turkish.

-                'placeholder' => 'Yeni MIME',
+                'placeholder' => 'Yeni MIME türü',
packages/admin/resources/lang/tr/currency.php (1)

19-21: Prefer “Ondalık Basamak Sayısı” for clarity.

“Ondalık Basamak” is understandable but slightly ambiguous. “Ondalık Basamak Sayısı” is clearer to admins configuring formatting.

Apply this diff:

-        'decimal_places' => [
-            'label' => 'Ondalık Basamak',
-        ],
+        'decimal_places' => [
+            'label' => 'Ondalık Basamak Sayısı',
+        ],
@@
-        'decimal_places' => [
-            'label' => 'Ondalık Basamak',
-        ],
+        'decimal_places' => [
+            'label' => 'Ondalık Basamak Sayısı',
+        ],

Also applies to: 43-45

packages/core/resources/lang/tr/exceptions.php (1)

4-21: Polish Turkish phrasing, avoid quotes/apostrophes around placeholders, and unify punctuation.

These tweaks improve naturalness and avoid suffixing placeholders with apostrophes (which reads awkwardly in Turkish), while keeping semantics intact.

Apply this diff:

 return [
-    'non_purchasable_item' => '":class" modeli satın alınabilir arayüzünü uygulamamaktadır.',
-    'cart_line_id_mismatch' => 'Bu sepet satırı bu sepete ait değil',
-    'invalid_cart_line_quantity' => 'Miktar en az "1" olması bekleniyordu, ":quantity" bulundu.',
-    'maximum_cart_line_quantity' => 'Miktar :quantity\'yi aşamaz.',
-    'carts.invalid_action' => 'Sepet işlemi geçersizdi',
-    'carts.shipping_missing' => 'Kargo adresi gerekli',
-    'carts.billing_missing' => 'Fatura adresi gerekli',
-    'carts.billing_incomplete' => 'Fatura adresi eksik',
-    'carts.order_exists' => 'Bu sepet için zaten bir sipariş var',
-    'carts.shipping_option_missing' => 'Kargo Seçeneği Eksik',
-    'missing_currency_price' => '":currency" para birimi için fiyat mevcut değil',
+    'non_purchasable_item' => '":class" modeli Satın Alınabilir arayüzünü uygulamıyor.',
+    'cart_line_id_mismatch' => 'Bu sepet satırı bu sepete ait değil.',
+    'invalid_cart_line_quantity' => 'Miktarın en az 1 olması bekleniyordu; bulunan: :quantity.',
+    'maximum_cart_line_quantity' => 'Miktar :quantity değerini aşamaz.',
+    'carts.invalid_action' => 'Sepet işlemi geçersizdi.',
+    'carts.shipping_missing' => 'Kargo adresi gerekli.',
+    'carts.billing_missing' => 'Fatura adresi gerekli.',
+    'carts.billing_incomplete' => 'Fatura adresi eksik.',
+    'carts.order_exists' => 'Bu sepet için zaten bir sipariş var.',
+    'carts.shipping_option_missing' => 'Kargo seçeneği eksik.',
+    'missing_currency_price' => '":currency" para birimi için fiyat mevcut değil.',
     'minimum_quantity' => 'En az :quantity adet eklemelisiniz.',
-    'quantity_increment' => ':quantity miktarı :increment\'lik artışlarla olmalıdır',
+    'quantity_increment' => 'Miktar yalnızca :increment artışlarla ayarlanabilir.',
     'fieldtype_missing' => 'FieldType ":class" mevcut değil',
-    'invalid_fieldtype' => '":class" sınıfı FieldType arayüzünü uygulamamaktadır.',
-    'discounts.invalid_type' => 'Koleksiyon sadece ":expected" içermeli, ":actual" bulundu',
+    'invalid_fieldtype' => '":class" sınıfı FieldType arayüzünü uygulamıyor.',
+    'discounts.invalid_type' => 'Koleksiyon yalnızca ":expected" içermelidir; ":actual" bulundu.',
     'disallow_multiple_cart_orders' => 'Sepetler sadece bir siparişle ilişkilendirilebilir.',
 ];
packages/table-rate-shipping/resources/lang/tr/relationmanagers.php (1)

69-76: Optional phrasing improvements for actions

More natural labels in Turkish and aligned with title “Kargo İstisnaları”.

-            'create' => [
-                'label' => 'Kargo istisna listesi ekle'
-            ],
+            'create' => [
+                'label' => 'Kargo İstisnası Ekle'
+            ],
             'attach' => [
-                'label' => 'İstisna listesi ekle'
+                'label' => 'İstisna Ekle'
             ],
packages/admin/resources/lang/tr/product.php (1)

83-85: Make helper text more natural and consistent

Minor phrasing polish for Turkish; flows better in UI hints.

-            'helper_text' => 'Etiketleri Enter, Tab veya virgül (,) tuşuna basarak ayırın',
+            'helper_text' => 'Etiketleri Enter, Tab tuşlarıyla veya virgül (,) ile ayırın',
packages/admin/resources/lang/tr/productoption.php (1)

61-63: Remove trailing period for consistency with other action labels

Most labels don’t end with punctuation; align styling.

-                        'label' => 'Varsayılan olarak tüm değerleri önceden seç.',
+                        'label' => 'Varsayılan olarak tüm değerleri önceden seç',
packages/admin/resources/lang/tr/widgets.php (1)

65-70: Clarify axis labels

  • “# Siparişler” → “Sipariş Sayısı”
  • “Toplam Değer” → “Toplam Tutar” (or “Gelir”, to match series_two label)
-                        'label' => '# Siparişler',
+                        'label' => 'Sipariş Sayısı',
@@
-                        'label' => 'Toplam Değer',
+                        'label' => 'Toplam Tutar',
packages/admin/resources/lang/tr/attribute.php (2)

31-34: Make description helper a bit more idiomatic Turkish.

Apply this diff to improve fluency:

-            'helper' => 'Alan altındaki yardım metnini görüntülemek için kullanın'
+            'helper' => 'Bu alanın altındaki yardım metnini göstermek için kullanın.'

50-53: Clarify the validation rules helper and align terminology.

Apply this diff:

-            'helper' => 'Özellik alanı için kurallar, örnek: min:1|max:10|...',
+            'helper' => 'Özellik alanı için kurallar; örneğin: min:1|max:10|...'
packages/admin/resources/lang/tr/components.php (3)

34-36: Use a clearer verb for “capture” in activity log.

The current translation ends with “ödeme” and lacks a verb. Suggest:

-                'capture' => ':last_four ile biten kart üzerinde :amount ödeme',
+                'capture' => ':last_four ile biten karttan :amount tahsil edildi',

86-87: Prefer sentence case for notifications (consistency with other strings).

Apply:

-                'success' => 'Koleksiyonlar Yeniden Sıralandı',
+                'success' => 'Koleksiyonlar yeniden sıralandı',

107-109: Natural phrasing for “Add another value”.

Apply:

-            'label' => 'Başka Değer Ekle',
+            'label' => 'Başka bir değer ekle',
packages/admin/resources/lang/tr/brand.php (2)

38-40: Use title case for action labels to match surrounding UI.

Apply:

-                    'label' => 'Ürün ilişkilendir',
+                    'label' => 'Ürün İlişkilendir',

68-70: Consistent casing for collection action label.

Apply:

-                    'label' => 'Koleksiyon ilişkilendir',
+                    'label' => 'Koleksiyon İlişkilendir',
packages/admin/resources/lang/tr/discount.php (3)

66-68: Clarify reward quantity helper text.

Apply:

-            'helper_text' => 'Her üründen kaçının indirimli olacağı.',
+            'helper_text' => 'Kaç ürünün indirimli olacağını belirtin.',

73-76: Refine automatic rewards helper for clarity.

Apply:

-            'helper_text' => 'Ödül ürünlerini sepette yokken eklemek için açın.',
+            'helper_text' => 'Ödül ürünleri sepette yoksa otomatik eklemek için etkinleştirin.',

122-124: Unify quoting style (prefer single quotes for consistency).

Apply:

-                'less_than_total' => "Toplam işlem tutarından daha az bir miktar tahsil etmek üzeresiniz"
+                'less_than_total' => 'Toplam işlem tutarından daha az bir miktar tahsil etmek üzeresiniz'
packages/admin/resources/lang/tr/order.php (4)

261-262: Use correct possessive form for “PDF”.

Apply:

-            'notification' => 'Sipariş PDF\'i indiriliyor',
+            'notification' => 'Sipariş PDF\'si indiriliyor',

288-293: Align “capture” terminology with the rest of the file (use “Tahsilat”).

Apply:

-            'notification' => [
-                'error' => 'Yakalama ile ilgili bir sorun oluştu',
-                'success' => 'Yakalama başarılı',
-            ],
+            'notification' => [
+                'error' => 'Tahsilat ile ilgili bir sorun oluştu',
+                'success' => 'Tahsilat başarılı',
+            ],

145-146: More natural placeholder phrasing for notes.

Apply:

-            'placeholder' => 'Bu siparişte not yok',
+            'placeholder' => 'Bu sipariş için not yok',

123-124: Unify quoting style (prefer single quotes for consistency).

Apply:

-                'less_than_total' => "Toplam işlem tutarından daha az bir miktar tahsil etmek üzeresiniz"
+                'less_than_total' => 'Toplam işlem tutarından daha az bir miktar tahsil etmek üzeresiniz'
packages/admin/resources/lang/tr/relationmanagers.php (4)

57-58: Fix grammar/casing in channels attach action label.

The imperative form is awkward. Suggest a grammatically natural phrasing.

-                'label' => 'Başka Bir Kanal Zamanla',
+                'label' => 'Başka bir kanalı zamanla',

Alternative if the intent is “attach”: ‘Kanal ekle’ or ‘Başka bir kanalı ekle’.


75-75: Correct Turkish character in description (ı/İ).

Typo: “zamanlayin” should be “zamanlayın”.

-            'description' => 'Hangi kanalların etkin olduğunu belirleyin ve kullanılabilirliği zamanlayin.',
+            'description' => 'Hangi kanalların etkin olduğunu belirleyin ve kullanılabilirliği zamanlayın.',

100-102: Use a more natural UI verb for detach.

“Ayır” is understandable but less common in UI contexts. “Kaldır” is generally clearer for users.

-            'detach' => [
-                'label' => 'Ayır',
-            ],
+            'detach' => [
+                'label' => 'Kaldır',
+            ],

279-281: Consider a more common term for “position”.

“Pozisyon” is correct but in table sorting contexts “Sıra” is more idiomatic.

-            'position' => [
-                'label' => 'Pozisyon',
-            ],
+            'position' => [
+                'label' => 'Sıra',
+            ],
packages/admin/resources/lang/tr/productvariant.php (7)

48-50: Use “Stok” for the numeric stock field label.

“Stokta” implies availability. For a quantity field, “Stok” reads better.

-        'stock' => [
-            'label' => 'Stokta',
-        ],
+        'stock' => [
+            'label' => 'Stok',
+        ],

51-53: Backorder wording is uncommon; consider “Ön Sipariş”.

“Sipariş Üzerine” is not typical for backorder in e‑commerce Turkish. “Ön Sipariş” (or “Stok dışı sipariş”) is more recognizable.

-        'backorder' => [
-            'label' => 'Sipariş Üzerine'
-        ],
+        'backorder' => [
+            'label' => 'Ön Sipariş'
+        ],

Please confirm consistency with other TR files in the repo for “backorder”.


57-60: Align option phrasing with the chosen backorder term.

Update the composite option to match the term used above.

-                'in_stock_or_on_backorder' => 'Stokta veya Sipariş Üzerine'
+                'in_stock_or_on_backorder' => 'Stokta veya Ön Sipariş'

63-65: Improve helper text clarity for unit quantity.

More natural phrasing in Turkish.

-            'helper_text' => '1 birimi kaç adet ürün oluşturur.',
+            'helper_text' => '1 birim kaç adet üründen oluşur.',

67-69: Refine helper text for minimum quantity.

Reduce repetition and match common commerce wording.

-            'helper_text' => 'Tek bir satın alma işleminde satın alınabilecek minimum ürün varyantı miktarı.',
+            'helper_text' => 'Tek bir siparişte satın alınabilecek minimum ürün varyantı adedi.',

77-79: Use a more idiomatic term for shippable.

“Kargo Edilebilir” sounds awkward. “Gönderilebilir” is more natural; “Kargolanabilir” also works.

-        'shippable' => [
-            'label' => 'Kargo Edilebilir',
-        ],
+        'shippable' => [
+            'label' => 'Gönderilebilir',
+        ],

31-33: Optional: Section title “Kargo” vs “Gönderim”.

If “Gönderilebilir” is adopted above, consider “Gönderim” here for consistency. If the admin commonly uses “Kargo”, feel free to keep as-is.

-        'shipping' => [
-            'title' => 'Kargo',
-        ],
+        'shipping' => [
+            'title' => 'Gönderim',
+        ],
packages/admin/resources/lang/tr/staff.php (3)

38-41: Singularize “Süper yönetici rolü” for clarity.

Refers to a single role toggle on the user, not multiple roles.

-        'admin' => [
-            'label' => 'Süper Yönetici',
-            'helper' => 'Süper yönetici rolleri yönetim panelinde değiştirilemez.'
-        ],
+        'admin' => [
+            'label' => 'Süper Yönetici',
+            'helper' => 'Süper yönetici rolü yönetim panelinden değiştirilemez.'
+        ],

42-45: Make roles helper sentence natural and explicit.

Improve flow and add punctuation.

-        'roles' => [
-            'label' => 'Roller',
-            'helper' => ':roles tam erişime sahip',
-        ],
+        'roles' => [
+            'label' => 'Roller',
+            'helper' => 'Şu roller tam erişime sahiptir: :roles',
+        ],

69-71: Minor readability: add colon after tooltip text.

Clarifies that a list follows.

-        'tooltip' => [
-            'roles-included' => 'İzin şu rollere dahildir',
-        ],
+        'tooltip' => [
+            'roles-included' => 'İzin şu rollere dahildir:',
+        ],
packages/admin/resources/lang/tr/actions.php (2)

32-34: Replace “&” with “ve” in Turkish.

Use the conjunction rather than an ampersand for better style.

-                'step_two' => [
-                    'label' => 'E-posta & Bildirimler',
+                'step_two' => [
+                    'label' => 'E-posta ve Bildirimler',

36-37: Replace “&” with “ve”.

Consistent with the previous step’s change.

-                'step_three' => [
-                    'label' => 'Önizleme & Kaydet',
+                'step_three' => [
+                    'label' => 'Önizleme ve Kaydet',
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between fac5850 and ebc3797.

📒 Files selected for processing (39)
  • packages/admin/resources/lang/tr/actions.php (1 hunks)
  • packages/admin/resources/lang/tr/activity.php (1 hunks)
  • packages/admin/resources/lang/tr/address.php (1 hunks)
  • packages/admin/resources/lang/tr/attribute.php (1 hunks)
  • packages/admin/resources/lang/tr/attributegroup.php (1 hunks)
  • packages/admin/resources/lang/tr/auth.php (1 hunks)
  • packages/admin/resources/lang/tr/brand.php (1 hunks)
  • packages/admin/resources/lang/tr/channel.php (1 hunks)
  • packages/admin/resources/lang/tr/collection.php (1 hunks)
  • packages/admin/resources/lang/tr/collectiongroup.php (1 hunks)
  • packages/admin/resources/lang/tr/components.php (1 hunks)
  • packages/admin/resources/lang/tr/currency.php (1 hunks)
  • packages/admin/resources/lang/tr/customer.php (1 hunks)
  • packages/admin/resources/lang/tr/customergroup.php (1 hunks)
  • packages/admin/resources/lang/tr/discount.php (1 hunks)
  • packages/admin/resources/lang/tr/fieldtypes.php (1 hunks)
  • packages/admin/resources/lang/tr/global.php (1 hunks)
  • packages/admin/resources/lang/tr/language.php (1 hunks)
  • packages/admin/resources/lang/tr/order.php (1 hunks)
  • packages/admin/resources/lang/tr/product.php (1 hunks)
  • packages/admin/resources/lang/tr/productoption.php (1 hunks)
  • packages/admin/resources/lang/tr/producttype.php (1 hunks)
  • packages/admin/resources/lang/tr/productvariant.php (1 hunks)
  • packages/admin/resources/lang/tr/relationmanagers.php (1 hunks)
  • packages/admin/resources/lang/tr/staff.php (1 hunks)
  • packages/admin/resources/lang/tr/tag.php (1 hunks)
  • packages/admin/resources/lang/tr/tax.php (1 hunks)
  • packages/admin/resources/lang/tr/taxclass.php (1 hunks)
  • packages/admin/resources/lang/tr/taxrate.php (1 hunks)
  • packages/admin/resources/lang/tr/taxzone.php (1 hunks)
  • packages/admin/resources/lang/tr/user.php (1 hunks)
  • packages/admin/resources/lang/tr/widgets.php (1 hunks)
  • packages/core/resources/lang/tr/base.php (1 hunks)
  • packages/core/resources/lang/tr/exceptions.php (1 hunks)
  • packages/table-rate-shipping/resources/lang/tr/plugin.php (1 hunks)
  • packages/table-rate-shipping/resources/lang/tr/relationmanagers.php (1 hunks)
  • packages/table-rate-shipping/resources/lang/tr/shippingexclusionlist.php (1 hunks)
  • packages/table-rate-shipping/resources/lang/tr/shippingmethod.php (1 hunks)
  • packages/table-rate-shipping/resources/lang/tr/shippingzone.php (1 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (1)
packages/admin/resources/lang/tr/discount.php (1)
packages/core/src/Models/Discount.php (1)
  • Discount (34-254)
🔇 Additional comments (36)
packages/core/resources/lang/tr/base.php (1)

3-9: LGTM — keys match EN locale; Turkish translation for "images" is correct.

Array shape, PHP syntax, and diacritics look good; confirmed matching key in packages/core/resources/lang/en/base.php ('images' => 'Images').

  • packages/core/resources/lang/tr/base.php — 'standard-media-definitions' → 'collection-titles' → 'images' => 'Görseller'
  • packages/core/resources/lang/en/base.php — 'standard-media-definitions' → 'collection-titles' → 'images' => 'Images'
packages/table-rate-shipping/resources/lang/tr/plugin.php (1)

3-7: LGTM – navigation group reads naturally in Turkish.

“Kargo” is appropriate for shipping context. Syntax and structure are correct.

packages/admin/resources/lang/tr/tax.php (1)

5-7: LGTM – concise and correct Turkish.

“Vergi/Vergiler” is accurate; structure and syntax are correct.

packages/admin/resources/lang/tr/global.php (2)

5-10: Sections translations look correct and idiomatic.

Keys and values are clear and consistent with typical admin navigation.


3-12: Verify coverage: all EN translation files have TR counterparts — no action needed

I scanned resources/lang/en vs resources/lang/tr across the repo. Summary: Missing TR directories: 0, Missing TR files: 0, Extra TR files: 0.

Checked locations:

  • packages/admin/resources/lang/en ↔ packages/admin/resources/lang/tr (packages/admin/resources/lang/tr/global.php present)
  • packages/core/resources/lang/en ↔ packages/core/resources/lang/tr
  • packages/table-rate-shipping/resources/lang/en ↔ packages/table-rate-shipping/resources/lang/tr
packages/admin/resources/lang/tr/user.php (1)

5-16: LGTM for labels and table fields.

Terminology is clear and matches common TR usage (“Ad”, “E-posta”).

packages/admin/resources/lang/tr/tag.php (1)

9-19: Straightforward and consistent.

Keys and labels map cleanly; no issues found.

packages/admin/resources/lang/tr/taxrate.php (1)

5-31: LGTM: Accurate and consistent translations for Tax Rate resource

Labels read naturally in Turkish and align with naming used across admin translations (plural_label, table/form structures). No issues found.

packages/table-rate-shipping/resources/lang/tr/shippingzone.php (1)

4-6: Verified — keep "label_plural" (no change needed)

I checked the package; translation files and resources use "label_plural" consistently, so the current key is correct.

Files verified (examples):

  • packages/table-rate-shipping/resources/lang/*/shippingzone.php — contains 'label_plural' (en, tr, fr, pl, es, vi, ...)
  • packages/table-rate-shipping/resources/lang/*/shippingmethod.php — contains 'label_plural'
  • packages/table-rate-shipping/resources/lang/*/shippingexclusionlist.php — contains 'label_plural'
  • packages/table-rate-shipping/src/Filament/Resources/ShippingZoneResource.php — returns __('lunarpanel.shipping::shippingzone.label_plural') (line ~37)
  • packages/table-rate-shipping/src/Filament/Resources/ShippingMethodResource.php — returns __('lunarpanel.shipping::shippingmethod.label_plural') (line ~33)
  • packages/table-rate-shipping/src/Filament/Resources/ShippingExclusionListResource.php — returns __('lunarpanel.shipping::shippingexclusionlist.label_plural') (line ~32)

Result: no edits required.

packages/admin/resources/lang/tr/language.php (1)

5-31: LGTM: Clear and consistent language resource translations

Terminology and key structure match other admin translation files.

packages/admin/resources/lang/tr/auth.php (1)

7-31: LGTM: Keys and structure align with expected ACL translations.

Role and permission keys look consistent and the array is syntactically sound.

packages/admin/resources/lang/tr/collectiongroup.php (1)

5-37: LGTM: Clear, consistent translations and structure.

Labels, table/form fields, and protected-delete message are accurate and consistent with other resources.

packages/admin/resources/lang/tr/customergroup.php (1)

5-39: LGTM: Accurate and consistent terminology.

Labels, table/form fields, and the protected-delete message read well and follow the established pattern.

packages/table-rate-shipping/resources/lang/tr/shippingmethod.php (1)

4-25: LGTM: Terminology and structure are sound.

Plural/singular labels, form/table fields, and availability messages are clear and idiomatic.

Also applies to: 33-57

packages/admin/resources/lang/tr/collection.php (1)

5-43: LGTM: Collection translations read naturally and align with expected key structure.

Labels, pages, actions, and table fields look consistent with other locales’ conventions. No functional issues found.

packages/admin/resources/lang/tr/channel.php (1)

5-37: LGTM: Channel resource keys and wording look correct.

Terminology choices (Tanımlayıcı, Varsayılan) are appropriate and consistent across table and form sections.

packages/admin/resources/lang/tr/taxzone.php (1)

24-67: State wording: Turkish translation matches repo conventions — no change required

Checked English and Turkish locales and repository usage. "States" in English maps to "Eyaletler" in Turkish and this is already used elsewhere in the repo, so the current strings are consistent.

Files of interest:

  • packages/admin/resources/lang/en/taxzone.php — 'states' => 'Limit to States' / 'States'
  • packages/admin/resources/lang/tr/taxzone.php — 'states' => 'Eyaletlerle Sınırla' ; 'zone_states' => 'Eyaletler'
  • packages/table-rate-shipping/resources/lang/tr/shippingzone.php — uses 'Eyaletler / İller ile Sınırla' and 'Eyaletler'
  • packages/admin/resources/lang/tr/address.php — 'label' => 'Eyalet'
  • packages/admin/resources/lang/tr/order.php — 'label' => 'Eyalet / İl'

Recommendation (optional): keep "Eyaletler" for consistency. If you want a broader term, consider "Eyaletler / İller" (matches shipping translations) or "Bölgeler", and optionally unify helper/label punctuation (some strings end with a period, others don’t).

packages/table-rate-shipping/resources/lang/tr/relationmanagers.php (2)

3-80: LGTM — structure and keys look consistent

File structure, nesting, and placeholders look good. Minor polish suggestions are above; otherwise this is ready.


3-80: Verify key parity with the English file — OK

I compared packages/table-rate-shipping/resources/lang/en/relationmanagers.php with packages/table-rate-shipping/resources/lang/tr/relationmanagers.php; all keys match (no missing or extra keys).

Files checked:

  • packages/table-rate-shipping/resources/lang/en/relationmanagers.php
  • packages/table-rate-shipping/resources/lang/tr/relationmanagers.php
packages/admin/resources/lang/tr/product.php (2)

3-131: LGTM — comprehensive product translations

Keys and sections mirror typical product resource structure; translations read well. One minor helper-text tweak suggested above.


3-131: Sanity-check: Turkish product translations match English keys — no action required

Ran the provided parity check: the sorted key lists for packages/admin/resources/lang/tr/product.php and packages/admin/resources/lang/en/product.php are identical (no missing or extra keys).

  • packages/admin/resources/lang/tr/product.php
  • packages/admin/resources/lang/en/product.php
packages/admin/resources/lang/tr/productoption.php (1)

3-127: LGTM — option and variant UI translations read well

Coverage is thorough and consistent with the rest of the admin UI.

packages/admin/resources/lang/tr/widgets.php (2)

3-118: LGTM — rich widget coverage with placeholders intact

Comprehensive set of dashboard/customer/variant-switcher strings. Above changes are stylistic/grammar improvements.


3-118: Key parity check — no missing/misnamed keys found

I ran the structural diff between packages/admin/resources/lang/tr/widgets.php and packages/admin/resources/lang/en/widgets.php; all keys match with no missing or extra entries.

  • Verified files:
    • packages/admin/resources/lang/tr/widgets.php
    • packages/admin/resources/lang/en/widgets.php
packages/admin/resources/lang/tr/attribute.php (2)

3-55: Solid structure and key coverage.

Array shape and keys align with expected resource conventions. Placeholders and casing look consistent.


3-55: Verify parity with the base (en) locale keys.

Ensure the tr file contains all keys present in the corresponding en file (no missing/extra keys), especially under form.* blocks.

packages/admin/resources/lang/tr/components.php (1)

3-117: Well-scoped additions; placeholders preserved.

Keys match component conventions; colon-style placeholders (e.g., :last_four, :amount, :model) are preserved.

packages/admin/resources/lang/tr/brand.php (1)

3-75: Good coverage and clear actions.

The structure mirrors other resources; messages are concise and accurate.

packages/admin/resources/lang/tr/discount.php (1)

3-353: Comprehensive and accurate mapping; status constants correctly referenced.

Covers form, table, pages, and relation managers thoroughly; status labels map cleanly to \Lunar\Models\Discount constants.

packages/admin/resources/lang/tr/order.php (2)

3-305: Looks good; thorough coverage of table, forms, infolist, and actions.

Placeholders and structure align with expected order resource conventions.


75-83: Confirm consistency of address line labels across modules.

Cross-check that address line labels here (e.g., “Adres Satırı 1/2/3”) match the patterns used in packages/admin/resources/lang/tr/address.php to avoid mixed terminology in the UI.

packages/admin/resources/lang/tr/relationmanagers.php (2)

3-285: Overall Turkish localization reads well and matches the structure.

Keys, placeholders (e.g., :type), and nesting mirror existing locales. Good coverage across relation managers.


264-264: Empty description: confirm if intentionally blank.

tax_rate_amounts.table.description is an empty string. If the UI expects copy here (as other locales do), consider adding a brief description or remove the key if unused.

packages/admin/resources/lang/tr/productvariant.php (1)

3-104: Solid structure and coverage for Product Variant translations.

Keys and placeholders align with the resource expectations. Good job mirroring admin UI sections.

packages/admin/resources/lang/tr/staff.php (1)

3-81: Great coverage for Staff/ACL with correct placeholders and nesting.

Terminology is consistent with admin UI (roles, permissions, ACL).

packages/admin/resources/lang/tr/actions.php (1)

3-52: Nice, succinct action labels and wizard steps.

Structures match other locales and keep placeholders intact.

@glennjacobs
Copy link
Contributor

@cavdarfurkan anything worth considering from the AI CodeRabbit comments?

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (7)
packages/admin/resources/lang/tr/components.php (7)

34-39: Polish payment event messages for more natural Turkish

“kart üzerinde” reads unnatural; “karttan” is idiomatic. Also prefer explicit past-tense forms.

-                'capture' => ':last_four ile biten kart üzerinde :amount ödeme',
+                'capture' => ':last_four ile biten karttan :amount tahsil edildi',
 
-                'authorized' => ':last_four ile biten kart üzerinde :amount yetkilendirildi',
+                'authorized' => ':last_four ile biten karttan :amount provizyon alındı',
 
-                'refund' => ':last_four ile biten kart üzerinde :amount iade',
+                'refund' => ':last_four ile biten karttan :amount iade edildi',

30-31: Use sentence case for consistency

Other messages use sentence case; align “Sipariş Oluşturuldu” accordingly.

-                'order_created' => 'Sipariş Oluşturuldu',
+                'order_created' => 'Sipariş oluşturuldu',

44-45: Prefer “Teslimat adresi” over “Kargo adresi”

“Teslimat adresi” is the standard term for “Shipping Address” in e‑commerce UIs.

-                'shippingAddress' => 'Kargo adresi',
+                'shippingAddress' => 'Teslimat adresi',

70-71: Minor punctuation/style improvement in helper text

Use parentheses and capitalize the abbreviation; this reads cleaner in Turkish.

-            'helperText' => 'YouTube videosunun ID\'sini girin. örn. dQw4w9WgXcQ',
+            'helperText' => 'YouTube videosunun ID\'sini girin (Örn. dQw4w9WgXcQ).',

85-87: Normalize capitalization to match sentence case elsewhere

Align with surrounding strings that use sentence case.

-                'success' => 'Koleksiyonlar Yeniden Sıralandı',
+                'success' => 'Koleksiyonlar yeniden sıralandı',

88-93: Prefer past tense for error notifications

“Yüklenemedi / silinemedi” reads better for failure notifications.

-            'node-expanded' => [
-                'danger' => 'Koleksiyonlar yüklenemiyor',
-            ],
+            'node-expanded' => [
+                'danger' => 'Koleksiyonlar yüklenemedi',
+            ],
             'delete' => [
-                'danger' => 'Koleksiyon silinemiyor',
+                'danger' => 'Koleksiyon silinemedi',
             ],

107-109: Clarify “Add another value” phrasing

Adding “Bir” makes the action label more natural; title case kept to match nearby labels.

-            'label' => 'Başka Değer Ekle',
+            'label' => 'Başka Bir Değer Ekle',
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between ebc3797 and 8fc8167.

📒 Files selected for processing (39)
  • packages/admin/resources/lang/tr/actions.php (1 hunks)
  • packages/admin/resources/lang/tr/activity.php (1 hunks)
  • packages/admin/resources/lang/tr/address.php (1 hunks)
  • packages/admin/resources/lang/tr/attribute.php (1 hunks)
  • packages/admin/resources/lang/tr/attributegroup.php (1 hunks)
  • packages/admin/resources/lang/tr/auth.php (1 hunks)
  • packages/admin/resources/lang/tr/brand.php (1 hunks)
  • packages/admin/resources/lang/tr/channel.php (1 hunks)
  • packages/admin/resources/lang/tr/collection.php (1 hunks)
  • packages/admin/resources/lang/tr/collectiongroup.php (1 hunks)
  • packages/admin/resources/lang/tr/components.php (1 hunks)
  • packages/admin/resources/lang/tr/currency.php (1 hunks)
  • packages/admin/resources/lang/tr/customer.php (1 hunks)
  • packages/admin/resources/lang/tr/customergroup.php (1 hunks)
  • packages/admin/resources/lang/tr/discount.php (1 hunks)
  • packages/admin/resources/lang/tr/fieldtypes.php (1 hunks)
  • packages/admin/resources/lang/tr/global.php (1 hunks)
  • packages/admin/resources/lang/tr/language.php (1 hunks)
  • packages/admin/resources/lang/tr/order.php (1 hunks)
  • packages/admin/resources/lang/tr/product.php (1 hunks)
  • packages/admin/resources/lang/tr/productoption.php (1 hunks)
  • packages/admin/resources/lang/tr/producttype.php (1 hunks)
  • packages/admin/resources/lang/tr/productvariant.php (1 hunks)
  • packages/admin/resources/lang/tr/relationmanagers.php (1 hunks)
  • packages/admin/resources/lang/tr/staff.php (1 hunks)
  • packages/admin/resources/lang/tr/tag.php (1 hunks)
  • packages/admin/resources/lang/tr/tax.php (1 hunks)
  • packages/admin/resources/lang/tr/taxclass.php (1 hunks)
  • packages/admin/resources/lang/tr/taxrate.php (1 hunks)
  • packages/admin/resources/lang/tr/taxzone.php (1 hunks)
  • packages/admin/resources/lang/tr/user.php (1 hunks)
  • packages/admin/resources/lang/tr/widgets.php (1 hunks)
  • packages/core/resources/lang/tr/base.php (1 hunks)
  • packages/core/resources/lang/tr/exceptions.php (1 hunks)
  • packages/table-rate-shipping/resources/lang/tr/plugin.php (1 hunks)
  • packages/table-rate-shipping/resources/lang/tr/relationmanagers.php (1 hunks)
  • packages/table-rate-shipping/resources/lang/tr/shippingexclusionlist.php (1 hunks)
  • packages/table-rate-shipping/resources/lang/tr/shippingmethod.php (1 hunks)
  • packages/table-rate-shipping/resources/lang/tr/shippingzone.php (1 hunks)
✅ Files skipped from review due to trivial changes (2)
  • packages/table-rate-shipping/resources/lang/tr/shippingzone.php
  • packages/admin/resources/lang/tr/taxzone.php
🚧 Files skipped from review as they are similar to previous changes (35)
  • packages/table-rate-shipping/resources/lang/tr/plugin.php
  • packages/admin/resources/lang/tr/product.php
  • packages/admin/resources/lang/tr/tag.php
  • packages/table-rate-shipping/resources/lang/tr/shippingmethod.php
  • packages/admin/resources/lang/tr/tax.php
  • packages/admin/resources/lang/tr/taxclass.php
  • packages/core/resources/lang/tr/base.php
  • packages/admin/resources/lang/tr/customer.php
  • packages/admin/resources/lang/tr/producttype.php
  • packages/admin/resources/lang/tr/channel.php
  • packages/admin/resources/lang/tr/discount.php
  • packages/admin/resources/lang/tr/language.php
  • packages/admin/resources/lang/tr/attribute.php
  • packages/core/resources/lang/tr/exceptions.php
  • packages/admin/resources/lang/tr/relationmanagers.php
  • packages/admin/resources/lang/tr/auth.php
  • packages/admin/resources/lang/tr/user.php
  • packages/admin/resources/lang/tr/taxrate.php
  • packages/admin/resources/lang/tr/collection.php
  • packages/admin/resources/lang/tr/global.php
  • packages/admin/resources/lang/tr/attributegroup.php
  • packages/admin/resources/lang/tr/actions.php
  • packages/admin/resources/lang/tr/fieldtypes.php
  • packages/admin/resources/lang/tr/activity.php
  • packages/admin/resources/lang/tr/customergroup.php
  • packages/admin/resources/lang/tr/address.php
  • packages/admin/resources/lang/tr/brand.php
  • packages/admin/resources/lang/tr/order.php
  • packages/admin/resources/lang/tr/staff.php
  • packages/admin/resources/lang/tr/productvariant.php
  • packages/admin/resources/lang/tr/currency.php
  • packages/admin/resources/lang/tr/widgets.php
  • packages/admin/resources/lang/tr/productoption.php
  • packages/table-rate-shipping/resources/lang/tr/shippingexclusionlist.php
  • packages/table-rate-shipping/resources/lang/tr/relationmanagers.php
🔇 Additional comments (6)
packages/admin/resources/lang/tr/components.php (1)

3-117: LGTM overall — solid Turkish localization; only minor polishing suggested below

The structure and keys look consistent, and the translations are broadly correct. I’ve left a few small, optional improvements for naturalness and consistency.

packages/admin/resources/lang/tr/collectiongroup.php (5)

3-37: LGTM: Translation array and Turkish phrasing look solid

  • Keys and nesting are sensible for a resource translation file.
  • Turkish terms read naturally and are consistent (Ad, Tanımlayıcı, Koleksiyon Grubu/Grupları).

30-36: Confirm key name convention: action vs actions

In many Lunar/Filament resource translations, the top-level grouping for actions is actions (plural). If other locales use actions, this being action may cause the UI to miss these strings. Please verify against the English locale and other languages.

If it needs to be plural, apply:

-    'action' => [
+    'actions' => [
       'delete' => [
         'notification' => [
           'error_protected' => 'Bu koleksiyon grubu silinemez çünkü ilişkili koleksiyonlar var.',
         ],
       ],
     ],

1-1: Confirmed: locale translation filename is consistently collectiongroup.php (no hyphen)

Search found translation files at:

  • packages/admin/resources/lang/de/collectiongroup.php
  • packages/admin/resources/lang/en/collectiongroup.php
  • packages/admin/resources/lang/es/collectiongroup.php
  • packages/admin/resources/lang/fr/collectiongroup.php
  • packages/admin/resources/lang/nl/collectiongroup.php
  • packages/admin/resources/lang/pl/collectiongroup.php
  • packages/admin/resources/lang/tr/collectiongroup.php
  • packages/admin/resources/lang/vi/collectiongroup.php

No collection-group.php files were found — no action required.


33-33: Confirmed: error_protected translation matches the consuming code — no change required

Checked the repo: the translation exists and is referenced by the edit page, so the key is correct.

  • packages/admin/resources/lang/tr/collectiongroup.php — contains 'action.delete.notification.error_protected'
  • packages/admin/src/Filament/Resources/CollectionGroupResource/Pages/EditCollectionGroup.php — uses __('lunarpanel::collectiongroup.action.delete.notification.error_protected')

9-19: No change required — table and form match the canonical en locale

Verified: all locale files under packages/admin/resources/lang/*/collectiongroup.php use the same top-level "table" and "form" shapes (no "columns" nesting).

Files checked:

  • packages/admin/resources/lang/en/collectiongroup.php
  • packages/admin/resources/lang/de/collectiongroup.php
  • packages/admin/resources/lang/es/collectiongroup.php
  • packages/admin/resources/lang/fr/collectiongroup.php
  • packages/admin/resources/lang/nl/collectiongroup.php
  • packages/admin/resources/lang/pl/collectiongroup.php
  • packages/admin/resources/lang/tr/collectiongroup.php
  • packages/admin/resources/lang/vi/collectiongroup.php

@glennjacobs glennjacobs added the i18n Language file contributions label Nov 10, 2025
@glennjacobs glennjacobs merged commit 5df0c31 into lunarphp:1.x Nov 11, 2025
47 checks passed
@glennjacobs
Copy link
Contributor

Thanks @cavdarfurkan

@cavdarfurkan cavdarfurkan deleted the feature/turkish_translation branch November 11, 2025 18:59
@cavdarfurkan cavdarfurkan restored the feature/turkish_translation branch November 11, 2025 18:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

i18n Language file contributions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants