inlang - Using Version Control to Solve i18n

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2026
November 16 - 19, 2026
New York, US & Online
Upcoming event
JSNation US 2026
JSNation US 2026
November 16 - 19, 2026. New York, US & Online
Bookmark
Rate this content
Sentry
Promoted
Code breaks, fix it faster

Crashes, slowdowns, regressions in prod. Seer by Sentry unifies traces, replays, errors, profiles to find root causes fast.

Get started

Every developer knows that i18n is painful. We found the curing pill in the form of version control. 

We'll talk about: 
- what's the *actual* problem with i18n?
- how to solve the orchestration problem?
- demo e2e collabroation between devs, designers, and translators

This talk has been presented at JSNation US 2024, check out the latest edition of this JavaScript Conference.

FAQ

The main challenge in internationalizing software is the coordination required between developers, designers, translators, auditors, and product managers. Each group uses different tools and needs to work together seamlessly, which can become complex quickly.

The Inlang file format is an open, interoperable file format designed to be used by all applications involved in the internationalization pipeline. It eliminates the need for import-export processes between different tools, reducing data loss and improving efficiency.

The Inlang file format benefits internationalization by allowing different applications to work on the same file without data loss. This leads to better coordination, faster processes, and a more seamless internationalization experience.

To solve software internationalization, you need an interoperable file format that allows applications to build on top of it, and a system like Lix that coordinates changes across different teams and tools.

The public pre-release of the Lix change control system is expected to launch on December 16th, with a follow-up release of the .inlang file specification in Q1 2025.

Internationalization is important for software companies because it allows them to target new markets and demographics more effectively, leading to increased customer acquisition and revenue.

The E1N library is a tool used by developers to ensure translations are displayed correctly in software applications as part of the internationalization process.

You can stay updated on the Lix change control system by following Lix CCS on Twitter, or for more information on Inlang, you can follow Inlang HQ on Twitter.

The Lake Exchange Control System (Lix) is a change control system designed to simplify the internationalization of software by coordinating changes across different teams and tools. It provides a change graph for all file modifications and automates many processes involved in internationalization.

Lix differs from traditional version control systems because it runs in a web browser and understands changes in binary files, not just text files. It focuses on change control rather than just versioning, allowing for better coordination of internationalization efforts.

Samuel Stroschein
Samuel Stroschein
14 min
21 Nov, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
In this talk, you'll learn about the problem with internationalizing software and how the Lake Exchange Control System solves it. Internationalizing software involves adapting it for different markets and demographics, which includes design, translations, and currencies. The goal is to enable any software company to go global in a day. The challenge lies in the coordination required among developers, designers, translators, and other stakeholders. The current process involves a complex pipeline and manual processes for translation hand-off. The key to solving this challenge is an interoperable file format and a change control system called Lix, which allows for collaboration and automation. Lix will have a public pre-release on December 16th, followed by the .inlang file specification in Q1 2025.

1. Introduction to Internationalizing Software

Short description:

In this talk, you'll learn about the problem with internationalizing software and how the Lake Exchange Control System solves it. Internationalizing software involves adapting it for different markets and demographics, which includes design, translations, and currencies. The goal is to enable any software company to go global in a day.

All right, I'm Samuel, and after this talk, you're going to know what the real problem with internationalizing software is and how something called the Lake Exchange Control System is able to solve this gigantic problem that has existed for decades.

Let's start first things first. What again was E1N of software? It means that you're adapting your software product for different markets and demographics. That means design, messages, translations, payments, and currencies. Usually you do it because you want to expand to different markets, but it's not only expanding to different markets. It might be that you're a US company and you want to target the Spanish-speaking population in the US more effectively. To do so, you have to internationalize, change the design, implement translations, yada yada.

Now in both cases, whether that's global expansion or targeting a demographic in a specific market more effectively, it all comes down to money. Of course it does. Why? Well, if I can target people more effectively, more money. If I can expand to different countries, that means more customers, more money. So, I want to teach you how to solve internationalization of software, which means we got to agree what solving E1N means. And what it means for us, for all the people that are working at E1N, is that we want to enable any software company to go global in a day.

2. Challenges of Internationalization Coordination

Short description:

There is a tool that allows companies to adapt their software to multiple markets within a day. The problem with internationalization is the coordination required among developers, designers, translators, and other stakeholders. It involves a complex pipeline and manual processes for translation hand-off. The process includes using a computer-assisted translation editor and coordinating with designers for UI adjustments.

That's a bold statement. You're a German company, for example, and there is a tool out there that lets you adapt your piece of software to the American market, Brazil market, Indian market, Chinese market, all within a day. That's the goal, that's what we have to find a solution for, and that's what we've been working on for the last two years.

Now, why do we do this again? Well, we help you acquire more customers, bring your product out in the world, and ultimately help you make more money. That's a great business proposition.

Okay, what is the actual problem with internationalization? Why have we been working on it for over two years and the business proposition makes so much sense, so you would think that something out there exists already, right? The answer is no, because the problem is kind of hidden.

You see, everyone believes that internationalization is pretty simple. You do some translations, you accept a different currency, you maybe adjust the design. It's pretty simple, right? The answer is yes. If you look at it in isolation, that's not really complicated. What is complicated, though, is that it all needs to be coordinated. Internationalization of software is a coordination problem where you end up with a pipeline like this, where you suddenly realize you need to coordinate the internationalization efforts between developers, designers, translators, auditors, product managers, and everyone else who touches the product in a pipeline that can become extremely complex extremely fast.

So let's get through it as an example. Imagine you're a developer right now, and you're implementing a new login screen. What you as a developer think is, internationalization is simple, okay? I just need to implement some T functions, call them in my code, and what they do is they look up a message in a JSON file, and that's it. That's internationalization, right? Well, for the developer in this case, yes, that's actually most likely it. But then what happens next, right? The login screen is implemented. Where are the translations? Well, they're not existent at this point. So there needs to be someone that tells the translators, you've got to start working. This is already where it falls apart because who tells them that the translator needs to start working? It's a manual process.

All right, so for now, it's a manual process. Translators get to work, and what is this? They're working in a different application. I've never seen that before. So this is a CAT editor, computer-assisted translation editor, and it provides translators with a UI to create translations. It sounds simple, right? But how does the translations, how do the translations from the developer get to the translator and then back to the developer? There's a manual hand-off step which includes importing and exporting all the translations from all those two tools. So the E1N library and the CAT editor. You're already seeing that, oh, shit, yeah, we have a lot to coordinate. But of course, it doesn't end there because once the translators are done, what happens next, right? Most likely, the designers need to review it. The designers need to know whether the translations are now overflowing and they need to adjust the UIs. So the whole spiel begins again.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Scaling Up with Remix and Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Scaling Up with Remix and Micro Frontends
Top Content
This talk discusses the usage of Microfrontends in Remix and introduces the Tiny Frontend library. Kazoo, a used car buying platform, follows a domain-driven design approach and encountered issues with granular slicing. Tiny Frontend aims to solve the slicing problem and promotes type safety and compatibility of shared dependencies. The speaker demonstrates how Tiny Frontend works with server-side rendering and how Remix can consume and update components without redeploying the app. The talk also explores the usage of micro frontends and the future support for Webpack Module Federation in Remix.
Routing in React 18 and Beyond
React Summit 2022React Summit 2022
20 min
Routing in React 18 and Beyond
Top Content
Routing in React 18 brings a native app-like user experience and allows applications to transition between different environments. React Router and Next.js have different approaches to routing, with React Router using component-based routing and Next.js using file system-based routing. React server components provide the primitives to address the disadvantages of multipage applications while maintaining the same user experience. Improving navigation and routing in React involves including loading UI, pre-rendering parts of the screen, and using server components for more performant experiences. Next.js and Remix are moving towards a converging solution by combining component-based routing with file system routing.
Design Systems: Walking the Line Between Flexibility and Consistency
React Advanced 2021React Advanced 2021
47 min
Design Systems: Walking the Line Between Flexibility and Consistency
Top Content
The Talk discusses the balance between flexibility and consistency in design systems. It explores the API design of the ActionList component and the customization options it offers. The use of component-based APIs and composability is emphasized for flexibility and customization. The Talk also touches on the ActionMenu component and the concept of building for people. The Q&A session covers topics such as component inclusion in design systems, API complexity, and the decision between creating a custom design system or using a component library.
Understanding React’s Fiber Architecture
React Advanced 2022React Advanced 2022
29 min
Understanding React’s Fiber Architecture
Top Content
This Talk explores React's internal jargon, specifically fiber, which is an internal unit of work for rendering and committing. Fibers facilitate efficient updates to elements and play a crucial role in the reconciliation process. The work loop, complete work, and commit phase are essential steps in the rendering process. Understanding React's internals can help with optimizing code and pull request reviews. React 18 introduces the work loop sync and async functions for concurrent features and prioritization. Fiber brings benefits like async rendering and the ability to discard work-in-progress trees, improving user experience.
Thinking Like an Architect
Node Congress 2025Node Congress 2025
31 min
Thinking Like an Architect
Top Content
In modern software development, architecture is more than just selecting the right tech stack; it involves decision-making, trade-offs, and considering the context of the business and organization. Understanding the problem space and focusing on users' needs are essential. Architectural flexibility is key, adapting the level of granularity and choosing between different approaches. Holistic thinking, long-term vision, and domain understanding are crucial for making better decisions. Effective communication, inclusion, and documentation are core skills for architects. Democratizing communication, prioritizing value, and embracing adaptive architectures are key to success.
Full Stack Components
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Full Stack Components
Top Content
RemixConf EU discussed full stack components and their benefits, such as marrying the backend and UI in the same file. The talk demonstrated the implementation of a combo box with search functionality using Remix and the Downshift library. It also highlighted the ease of creating resource routes in Remix and the importance of code organization and maintainability in full stack components. The speaker expressed gratitude towards the audience and discussed the future of Remix, including its acquisition by Shopify and the potential for collaboration with Hydrogen.

Workshops on related topic

Master JavaScript Patterns
JSNation 2024JSNation 2024
145 min
Master JavaScript Patterns
Top Content
Featured Workshop
Adrian Hajdin
Adrian Hajdin
During this workshop, participants will review the essential JavaScript patterns that every developer should know. Through hands-on exercises, real-world examples, and interactive discussions, attendees will deepen their understanding of best practices for organizing code, solving common challenges, and designing scalable architectures. By the end of the workshop, participants will gain newfound confidence in their ability to write high-quality JavaScript code that stands the test of time.
Points Covered:
1. Introduction to JavaScript Patterns2. Foundational Patterns3. Object Creation Patterns4. Behavioral Patterns5. Architectural Patterns6. Hands-On Exercises and Case Studies
How It Will Help Developers:
- Gain a deep understanding of JavaScript patterns and their applications in real-world scenarios- Learn best practices for organizing code, solving common challenges, and designing scalable architectures- Enhance problem-solving skills and code readability- Improve collaboration and communication within development teams- Accelerate career growth and opportunities for advancement in the software industry
AI on Demand: Serverless AI
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
AI on Demand: Serverless AI
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
In this workshop, we discuss the merits of serverless architecture and how it can be applied to the AI space. We'll explore options around building serverless RAG applications for a more lambda-esque approach to AI. Next, we'll get hands on and build a sample CRUD app that allows you to store information and query it using an LLM with Workers AI, Vectorize, D1, and Cloudflare Workers.
React Patterns Made Simple
React Day Berlin 2024React Day Berlin 2024
62 min
React Patterns Made Simple
Top Content
Featured Workshop
Adrian Hajdin
Adrian Hajdin
Learn widely used React patterns, including HOCs, Compound Components, Provider Patterns, Functions as Child, and Portals, to write cleaner, more efficient code and create scalable, maintainable applications.Overview In this workshop, viewers will learn about key React patterns that can make their code more efficient, readable, and maintainable. We'll introduce each pattern, explain how it works, and demonstrate practical examples. By the end of the session, participants will have a solid understanding of how to use these patterns in their projects.Learning GoalsHOCs Compound Components Provider Patterns Functions as Child Portals Modularity Maintainability Real-world Application.
Bringing Your Web App to Native With Capacitor
JSNation 2023JSNation 2023
111 min
Bringing Your Web App to Native With Capacitor
WorkshopFree
Mike Hartington
Mike Hartington
So, you have a killer web app you've built and want to take it from your web browser to the App Store. Sure, there are a lot of options here, but most will require you to maintain separate apps for each platform. You want your codebase to be as close as possible across Web, Android, and iOS. Thankfully, with Capacitor, you can take your existing web app and quickly create native iOS and Android apps for distribution on your favorite App Store!
Contents: This workshop is aimed at beginner developers that have an existing web application, or are interested in mobile development. We will go over:- What is Capacitor- How does it compare to other cross-platform solutions- Using Capacitor to build a native application using your existing web code- Tidying up our application for distribution on mobile app stores with naming conventions, icons, splash screens and more
High-performance Next.js
React Summit 2022React Summit 2022
50 min
High-performance Next.js
Workshop
Michele Riva
Michele Riva
Next.js is a compelling framework that makes many tasks effortless by providing many out-of-the-box solutions. But as soon as our app needs to scale, it is essential to maintain high performance without compromising maintenance and server costs. In this workshop, we will see how to analyze Next.js performances, resources usage, how to scale it, and how to make the right decisions while writing the application architecture.