Top 5 Reasons Why Localization Used to be a Pain

by Industry updates No Comments

Web or mobile app localization used to be a pain. In all likelihood I am not telling you anything new, either. But why is that? For the longest time, software developers have optimized all kinds of processes in their work (the lastest being version management, which with GIT has been so successful it has entered other industries as well, such as natural sciences, writing and lawmaking).

One aspect that is still treated with a good dose of disdain is localization. If you’ve used a decent localization management tool (such as LingoHub), you know that most of these fears are vastly overblown. Today, localization is a smooth and easy-to-integrate part of the dev cycle. If you’re nostalgic, let’s look back at why it used to be a pain…..

read more

Translation Memory in Lingohub

Translation Memory lands in Lingohub’s localization platform

by Product news No Comments

When we released our new translation editor a few weeks ago, some users were surprised that we had dropped machine translation (MT) from the interface. We had to remove some functionality temporarily to prepare for release of a beta version of our translation memory (TM) which is now available to all users. Machine translation is back as well.

A translation memory is a flexible database, integrated with a translation editor, where previously translated texts are stored. This can not only aid a translator in speeding up the work, but can also improve the consistency of the overall translation quality of a project, as often times elements can be easily re-used and translated the exact same way. It cuts time needed to look up past texts and as you’ll see in our editor, it is really convenient.

read more

AngularJS Directives

Improve user experience with these 3 AngularJS directives

by Developers One Comment

AngularJS directives can give your visitor a better user experience (UX), e.g. by showing user avatars to make a page look more personal. An email field in your sign-in form could show an avatar next to it, indicating to the user that he typed in the correct email-address. If you have optional input fields in your form, you can hide them by default and make them appear on click, immediately focusing the first one. These approaches are very easy to achieve and reusable with directives.

You can build AngularJS directives in various ways. There are many guides out there already on how you can create custom directives (so I will not describe these basics here):

read more

ElasticSearch data mapping L10n

ElasticSearch tutorial part I: ElasticSearch data mapping

by Developers No Comments

One of our core technologies we build upon here at LingoHub is Elasticsearch (ES). Built on top of the Apache Lucene project, ES provides extremely powerful text analysis and search capabilities that make it the ideal solution for the various text search requirements in our business. In this small series of articles I want to write about how we use ES in our application starting with a small introduction to ElasticSearch data mapping.

Lucene basically stores documents internally as key-value pairs and ES extends this very low level storage mechanism by providing a document centric view on the internal data. Mapping the data model from a persistent storage location (usually a RDBMS) to an according JSON document structure that can be indexed in ES can be a bit tricky and there are a few things to consider when coming up with such a mapping.

read more

Java properties files

Ensuring proper Java character encoding of byte streams

by Developers No Comments

This article looks at Java character encoding challenges and how those can be tackled.

The situation with Java character encoding

Some time ago I wrote about a situation we are facing at LingoHub every day: If a user uploads a resource file or uses our Github & Bitbucket integration to import a file, we always have to find out the correct character encoding.

We always receive a byte stream, nothing more, nothing less. So how should we be able to apply the correct charset (UTF-8, UTF-16LE, UTF-16BE, ISO-8859-1) to transform these bytes into meaningful characters?

read more