In the contemporary global landscape, the demand for multilingual applications continues to surge. This article explores the intricacies of multilingual application development, transcending the mere surface of translation to explore the complexities of backend infrastructure, documentation, and the transformative potential of generative AI models. The concept of abstraction emerges as a conduit to a language-agnostic future, where numerical identifiers may replace traditional language-dependent elements. Through ongoing contemplation, the journey unfolds from the command line to programming languages, addressing not only technological obstacles but also the profound questions that define the core of a genuinely multilingual application.

Introduction

Developing a genuinely multilingual application is a multifaceted undertaking that compels us to scrutinize the essence of true multilingualism within an application. Is mere translation of the user interface [1] into multiple languages adequate, or should our exploration venture deeper into the development process? While the pursuit of a seamless user experience across languages remains paramount, it is equally imperative to acknowledge the substantial human effort entailed in the development of applications.

In our contemporary, technologically advanced landscape, we stand at the crossroads of human expertise and artificial intelligence. Generative AI models are progressively enhancing the processes of translation and localization, enabling us to extend our reach to a more diverse audience. Within the community of language enthusiasts, there is an ongoing exploration and even debate [2] surrounding the incorporation of AI, particularly generative AI, in the translation approach. However, as we embark on the journey toward conceiving truly multilingual applications, it's imperative that we avoid the pitfall of narrowing our focus exclusively to the front-end aspects.

The complexity escalates significantly when we take into account not only the backend infrastructure but also bug or feature management, log management, and the documentation for an application's programming interface (API). Do our existing localization and internationalization [3] approaches offer the depth necessary to deliver a genuinely end-to-end multilingual experience? This is a question that goes deeper than the mere translation of buttons and menus.

As we look into the complexities of multilingual development, we confront a myriad of challenges and considerations. Consider the documentation journey, starting from the initial discussions and specifications to the birth of the first version. How much of this process has been seamlessly captured in the translation phase? Furthermore, ponder the continuous development cycle, marked by subsequent releases and ongoing maintenance — how does this dynamic evolution affect the multilingual dimension? Can we sustain quality and consistency across languages as our application evolves?

Translation versus Abstraction

Some might propose sticking to the status quo—continuing development in the existing programming languages and documenting various aspects of development in the language spoken by the majority of users or in English, as is the current practice. Under this approach, individuals seeking information about the application can utilize translation technologies to comprehend the code and documentation in their local languages. However, we must ask ourselves, does this approach genuinely embody the essence of being multilingual?

Perhaps a viable path forward lies in the concept of abstraction [4], reminiscent of the abstractions we have traditionally employed in high-level [5] and low-level programming languages [6]. Is it conceivable to establish an abstraction layer that relies on numerical identifiers for class names, function names, and variable names, thus enabling effortless adaptability across languages? This concept extends beyond simple translation; it is about transcending language barriers throughout the entirety of the application development process.

Envision a future where applications transcend language barriers, becoming truly language-agnostic, all thanks to advanced translation capabilities and the power of generative AI models. Given below are some of these continuous reflections from the command line to the programming languages and the expansive development landscape:

Multilingual Command Line

  1. Rethinking the command-line
  2. Building a Multilingual Command Line
  3. Multilingual Prompt is the New Command Line

Multilingual Programming

  1. Multilingual Programming Experience
  2. Multilingual Programming
  3. Human Languages as New Hot Programming Languages

Conclusion

The imperative for Multilingual Application Development becomes evident as we consider the ever-growing demand for global connectivity. Current approaches, primarily centered on interface translation, only scratch the surface of the challenge. Yet, a promising path emerges through the abstraction of language-agnostic programming and the integration of generative AI. This envisioned future holds the potential to revolutionize our digital landscape, forging applications that seamlessly traverse linguistic boundaries, fostering inclusivity, and meeting the diverse needs of our globalized world.

References

  1. gettext — Multilingual internationalization services
  2. Temporary policy: Generative AI (e.g., ChatGPT) is banned
  3. Internationalization and localization
  4. Abstract Wikipedia
  5. High-level programming language
  6. Low-level programming language