Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Api Platform Translation Bundle Laravel Package

locastic/api-platform-translation-bundle

Symfony bundle that adds multilingual support to API Platform resources. Use the provided traits to define translations for Doctrine entities, then serve locale-aware API responses based on the request's language, with automatic translation hydration and minimal configuration.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • i18n / market expansion sequencing. Whether "add locale" is a config change or an engineering epic. This bundle reduces it toward config + content, which changes how confidently you can commit to a market-by-market rollout in the roadmap.
  • Build vs. buy (transport layer). The package replaces a class of bespoke work most Symfony teams write once and regret: Doctrine entity translation wiring, per-locale serialization groups, denormalization of nested translation objects, and Accept-Language / ?locale negotiation. The decision is roughly "one integration day vs. one to three sprint-weeks," not "framework vs. framework."
  • API contract shape. It nudges you toward a locale-negotiated contract (one resource URI, locale in header/query) instead of locale-in-path (/en/products, /fr/products). That's a durable, hard-to-reverse public API decision — worth making deliberately, and this bundle is an implicit vote for the former.
  • Data modeling for translations. Per-entity translation tables (the Sylius pattern) versus a single JSON/JSONB column. This choice drives editorial tooling, partial-translation fallback behavior, indexing/search quality, and reporting — the bundle only supports the former, so adopting it pre-commits you there.
  • Write-path scope. Whether content authors can PATCH localized fields through the same API as reads, or whether writes stay in an admin app. Multi-locale concurrent editing and conflict semantics are a product decision, and this bundle makes the "writes through the public API" option cheap to offer.
  • Fallback policy. Serving the base entity when a translation is missing is a content-ops decision (what does a partially localized market look like?), and adoption forces you to name that policy now rather than discover it in production.
  • Editorial workflow buy-in. If the roadmap needs draft/review/publish, machine translation, or per-locale permissions, this package gets you the transport and nothing else — a signal to budget a separate CMS or workflow layer.

When to Consider This Package

Adopt when:

  • The stack is Symfony + API Platform (not Laravel — despite the request framing, this is a Symfony bundle; PHP ecosystem yes, Laravel no). Confirm the API Platform major version it supports against yours before anything else.
  • You already model, or are willing to model, translations as separate Doctrine entities per locale, Sylius-style.
  • You need localized payloads on both read and write, which is the part most teams underestimate.
  • The team is small and you'd rather not maintain a custom locale event subscriber and serializer context.
  • You're adding locales incrementally, so centralizing locale config has real value.
  • You're prepared to vendor or pin it. With 83 stars and 0 dependents you will, in practice, be the de facto maintainer.

Look elsewhere when:

  • Laravel / Eloquent. Use spatie/laravel-translatable or equivalent; this is not the right ecosystem.
  • You want single-row JSON/JSONB translations — the entity-per-locale assumption makes this a non-starter.
  • You need translation workflow (draft → review → publish), MT integration, or per-locale permissions. This is plumbing, not a content platform.
  • You need guaranteed forward compatibility with the newest API Platform majors. Small bundles with few dependents typically lag; a minor-version bump upstream can strand you.
  • You require vendor SLA or commercial support. MIT, no commercial backing, no downstream consumers to share debugging burden with.
  • Your locale count is 2–3 and read-only localization. A serializer group plus a request listener is genuinely less code than a dependency here.

How to Pitch It (Stakeholders)

For executives (one paragraph). Localization is on our roadmap, and the expensive part usually isn't translation — it's the API plumbing that makes every endpoint locale-aware. This package is that plumbing, pre-written: roughly a day of integration instead of a multi-week build, MIT-licensed, no vendor lock-in. The caveats are real but bounded: it's a small open-source project (83 stars, no known downstream users), recently released but effectively unmaintained by market standards, so we should vendor it into our repo and treat it as our code. That's a low-cost, reversible bet — not a platform commitment — and it should be framed to the business as "one less thing to build," not "we've solved localization."

For engineering (the substance). It gives you the Sylius translation pattern with the API Platform glue already written: translation entities stay conventional Doctrine, the bundle handles denormalizing nested translation payloads on write and resolving the right locale from Accept-Language or a query parameter on read. What you're buying is the boring, easy-to-get-subtly-wrong part. What you're not buying is a workflow, a fallback policy, or upgrade support — you own the fork, so pin the version, read the source (it's small), and test the API Platform upgrade path before you depend on it.

Honest positioning. Good bet if we're already Sylius-shaped on Symfony and want localized writes quickly. Wrong bet on Laravel, wrong bet if we'd rather store translations in a JSON column, and wrong bet if the roadmap actually needs a content workflow — in which case this saves us a week and distracts us from the real buy decision.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core