Should I handle internationalization on client side or server side?

I’m building an app with Node.js backend and multiple frontend clients. The setup includes:

  • Web client using React + Material UI
  • Mobile app built with React Native

I need to implement multi-language support and I’m torn between different approaches. Both my backend framework and frontend libraries have internationalization features built in.

I’m considering these options:

  1. Server-side translation - Store all language files on the backend and send translated content to clients
  2. Client-side translation - Let each frontend handle its own translation files and logic
  3. Hybrid approach - Mix both methods depending on the content type

I’m looking for advice from developers who have implemented similar solutions. What are the main advantages and disadvantages of each approach? Which method works better for maintaining multiple client applications?

I’ve built multi-platform apps with internationalization, and I’d go with client-side translation every time. Users can switch languages instantly without waiting for network calls - huge win for mobile users on spotty connections. You also get offline support and way less server load. Sure, keeping translation files synced across platforms is a pain, but it’s totally doable with good tools and shared translation keys. For dynamic stuff like user posts, handle those server-side. Keep your static UI elements on the client. This hybrid approach works great - you get the performance boost while staying consistent for content that needs server processing.

depends on ur app and how often stuff changes. if it updates often, server-side is better - less need to push new versions. but if the UI is stable, client-side is way faster for users.

Interesting dilemma! What type of content are you translating - mostly ui labels and buttons, or lots of dynamic user content? Also, how often do you deploy updates to mobile vs web? That’ll really determine which approach works best for you.