- How do I install arcanedev/localization in a Laravel app?
- Install it with Composer, then publish the package config and language assets. Register the localization middleware in your HTTP kernel and opt your routes into the package's localized route group. Most integration work is not installation but validating route generation, redirects, and URL helpers across the app.
- Does arcanedev/localization support Laravel 10 or Laravel 11?
- The last release was February 2022, placing it in the Laravel 8 era, so you must confirm the illuminate/* constraints against your target framework before adopting it. For Laravel 9 and newer, treat this as a fork-and-own decision rather than a straightforward adoption. Many teams will need to update dependencies and test routing behavior themselves.
- How do locale-prefixed routes and URL generation work in this package?
- The package provides a config-driven locale registry plus route registration macros and middleware that resolve the active locale from the route, session, or browser. That makes it suitable for locale-prefixed or subdomain-based URLs on server-rendered, SEO-sensitive Laravel sites. You should explicitly verify every route() and url() call, plus packages like Ziggy, Inertia helpers, tenancy resolvers, and signed URL generation.
- Can I edit Laravel translation files from the browser with arcanedev/localization?
- Yes, the package's differentiating feature is a built-in web interface for adding, editing, and deleting language files from the browser. It also includes a language-switcher view component and helpers for setting the current locale. This is aimed at editorial workflows where non-engineers manage strings without editing PHP or JSON files directly.
- How does the database translation loader and caching work?
- The package ships a pluggable translation loader that can source strings from PHP arrays, JSON files, or a database table with caching. If you choose the database loader, you own the schema and the cache-invalidation contract. For teams whose source of truth is an external TMS such as Crowdin, Lokalise, or Phrase, the database loader is usually unnecessary weight and a liability.
- How do I persist the selected locale across requests?
- Middleware resolves the active locale from the route, session, or browser and the package includes a language-switcher component for changing it. Persistence typically relies on session state and locale-aware routing. Be careful with middleware ordering if you already use a SetLocale-style package, because conflicting middleware can silently produce the wrong locale.
- Is arcanedev/localization safe for production with route caching?
- Route caching with localized routes needs explicit verification in your application, especially around redirects and canonical or hreflang output. The package extends route registration and URL generation, so production readiness depends on testing route() and url() behavior across all route groups. Also validate middleware ordering and any third-party packages that wrap the Laravel router.
- What are the alternatives to arcanedev/localization?
- A common alternative is mcamara/laravel-localization for locale-prefixed routing, often paired with an external translation management system. Arcanedev Localization's marginal value is its browser-based translation editor and pluggable database loader. If your team already standardizes on mcamara plus a TMS, adding a second routing abstraction is rarely worth it.
- Is arcanedev/localization still maintained, and should we fork it?
- The project is a single-maintainer package with roughly 187 stars and its last release was February 2022, so bus-factor and lifecycle risk should be priced into your estimate. If the app is on Laravel 9 or newer, plan for a fork with a named owner rather than assuming upstream support. Confirm the framework constraints and test the fork against your routing and translation requirements.
- Is arcanedev/localization suitable for API-only or SPA applications?
- It is a poor fit for API-only services and SPAs where routing is client-side and only JSON payloads need translating. The package plugs into Laravel's localization, routing, and view layers, including Blade switcher conventions. It is strongest for server-rendered Laravel monoliths that need indexable per-locale content and editor-managed strings.