What does your general technology stack look like? You’ll need this to know your scope.

  • Mobile (Android/iOS)
  • API + javascript single page app
  • Full stack framework (django/rails/laravel)

The difficulty can of course scale with the complexity of your platform - a single fullstack application will be easier than microservices + separate mobile applications.

As a first exercise for yourself before embarking on a POC with the development team, we would have a stakeholder or product manager start cataloging the input labels, buttons and error messages in your applications for the following three user journeys:

  • Successful Sign in (would only localize any flash/success messages once the user hits the dashboard/authenticated page)
  • Unsuccessful Sign in attempt (note error messages)
  • Resetting Password + Validation Messages (Password is not long enough, requires Special Character, etc.)
  • Bonus: try your registration.

You will have to do them eventually and it will be a good exercise in understanding some scope. ProTip - do this homework before launching this initiative and you’ll gain some credibility points with your developers. Launch into a planning meeting with none of this done or vaguity and you will get a ton of pushback.

You can start in a google sheet or building out a yaml/yml / po file depending on what tooling your developers end up using for each software language/framework in their stack.

Below is an example of some yaml translation files snippets in for ES - español/spanish & EN - English. Notice how the EN file has more key:value pairs than the ES? Your team will constantly be battling pairity in translations moving forward.

You should set up an error budget or SLA for translations. Have a hot new feature that needs to ship ASAP? Will a missing translation hold it back or will your team ship?

es.yml

es:
  hello: "Hola Mundo"
  actions:
    cancel: "Cancelar"
    forgot: "¿Olvidaste tu contraseña?"
    invite: "Invitalos"
    login: "Iniciar sesión"
    new: "Nuevo"
    purchase: "Suscripción de compra"
    reset_instructions: "Send me reset password instructions"
    save: "Enviarme restablecer las instrucciones de contraseña"
    sign_in_with: "Inicia sesión con"
    signup: "Regístrate"
    view_all: "Ver todo"

en.yml

en:
  hello: "Hello World"
  actions:
    cancel: "Cancel"
    confirm: "Are you sure?"
    forgot: "Forgot your password?"
    invite: "Invite"
    login: "Log in"
    new: "New"
    edit: "Edit"
    delete: "Delete"
    archive: "Archive"
    purchase: "Purchase"
    reset_instructions: "Send me reset password instructions"
    save: "Save"
    back: "Back"
    test: "Test"
    favorite: "Favorite"
    sign_in_with: "Sign in with"
    signup: "Sign Up"
    view_all: "View All"

As a second exercise I would start cataloging all the labels, buttons and error messages in your application. This will possibly be daunting, but I would tackle it one piece at a time. When you have your list, I would then localize it in 3 languages that would be of most value to your org. Treat it as real, will you need to hire consultants to translate? Do you have internal bandwidth and experience to translate?

Open Source Tools:

Here are three tools that can help bring together you, your devs, and translators rock and roll with content… (open source)

I could write a book on this and don’t consider myself an expert. But I’ve seen a bunch of projects like this fail due to teams giving up under frustration. Take some small steps, test things out - it will take a while, set that expectation internally so that people don’t get burned out.

Third Party & Open Source Libraries

Your team will most likely leverage a large number of open source libraries. There will probably be a number of battle tested pieces of your application that will require replacement if they do not support localization. If you are using something like Vue, React or Angularjs, be prepared for your team to discover that a charting, mapping or visualization library does not support localization.

Also keep in mind that you might integrate with an API that only provides english language content. You may need to find another vendor or see if you can somehow decrease the harshness of the experience for your end users.

User Generated Content

Pretty much no one translates their customers content.

Take a look at Facebook & Twitter - if you click around enough, you’ll see messages in foreign languages. There’s no expectation of this being translated.

However, if you are building an internal tool for your HR team for example, there might be requirements for content to be translated or to be made available in different languages. Think - Human Resources policies and Benefits information. Discuss with your team and stake holders how the orginal creators of content will provide translated documents - you are just the messanger.

Real Life Examples

Here’s some example translations in open source projects:

Other Considerations:

  • Can your translation management tool manage approvals?
  • Can your translation management tool create merge requests automatically for your developers?
  • Keep Singular/Plural Translations in mind.

Recap:

  1. Take a swing at identifying buttons, labels and error messages on your login & registration pages. Translate those findings into 2-3 languages. This will help accelerate the development team and give you a crash course in this process.
  2. Discuss with organization who will provide budget and resources for translation.
  3. Evaluate tooling to help you and your team manage translations and gap analysis between languages.
  4. User generated content is typically out of scope, but keep in mind some users will need to provide down stream translations of certain types of documents. How will you support that?