The Importance of an API

I have worked on many software projects over the last couple of years. One aspect that became more and more important is an API (Application Programming Interface). A decade ago an API was just classes/interfaces that a developer could use to interact with a library/framework, mostly in the same language. As systems became more and more complex and diverse, SOAP quickly rose as a defacto standard in the Java/.NET community to communicate between systems. However, once again Ruby on Rails showed that things don’t need to be complicated to be useful, and it integrated parts of Roy Fielding’s dissertation of a Restful approach (REST). Since then, REST has become the standard for nearly every Web application. Many standard apps build REST APIs that allow users and developers to integrate with their services. Twitter is a prime example that creates and builds value with such an approach.

We here at linguist strongly believe that creating a vibrant community is a key factor for our success. That is why we offer an API right from the beginning. The API supports many different actions like uploading/downloading resources, creating projects, inviting new collaborators, listing collaborators…You can find a full listing in our API overview. The documentation covers all necessary information about the entry points and shows how to use the API. We planned the API with your needs and requirements in mind, and it’s now up to you to let us know what’s missing and what can be improved. If you have trouble using the API or have ideas or questions, simply create a ticket on our support page.

I’m totally excited about linguist and can’t wait to implement all those awesome features you come up with! Happy translating.

Further readings on good REST APIs:

Hello World-Hallo Welt-Hola Mundo-Привет мир-你好世界

Billions of people speak thousands of languages, most websites only one or two. Why is that? My guess is that most developers are bilingual, English and some Native Language. But wait, shouldn’t developers building websites and translators/writers deliver the content?

I am programming for about ten years now. Most of the time as a Java developer (server and desktop projects mostly), since 2008 I switched to Ruby/Rails (web projects only). In this time I worked on quite a few projects. Despite their differences, one thing had all in common: doing and maintaining translations was always dirty and chaotic matter. I am sure you experienced some of these situations:

  • The translator edited the resource file in Word with all the fancy formatting.
  • Resource files are exchanged via email. (How would it look to have to have a “pull” and “push” command?)
  • The dialog looks good in English, but in German it sucks. Simply because the same text in German in 30% longer.
  • Missing translations, unused translations.
  • Spelling mistakes, weird texts like “Am I write?” in the application. Not everyone is an English Native (if you haven’t realized it yet, I am not an English native. So please don’t judge my posts by my writing style.), but many think their English rules.
  • And a lot more.

Analyzing these problems, I came to the conclusion that two things have to change:

  1. Translation needs much more integration in the software process. So we can use Rake,CapistranoCI, and so on to get the latest resource files, to push changes to translators, …
  2. I shouldn’t never ever have to explain to a translator/writer what a .yaml file is. Translator should only see a fancy web interface where they can do their job.

So I started to work on a project called “linguist”. The goal is to make linguist the “Github” for translations. I don’t want to give away too many details at this early stage, but I will try to publish updates on this blog regularly.

One more thing, I am looking for help/support. So if you are interested on working on the project write me an email hjuskewycz (a t) hemju.com (paid or voluntary). Of course feedback, ideas, critics are welcome too.