Get Localization for Photoshop

Get Localization for Photoshop

gtools_ps

Think localized marketing material, screenshots etc. Think about how frustrating and painful it is to create localized graphics and especially keep them updated. Well no more. We are proud to introduce Get Localization for Photoshop. It allows you to export all the textual content to a resource file directly in Photoshop. This resource file can be easily translated either using Get Localization Now or Get Localization Workspace, and after the translation you can easily import the translated files back to Photoshop and generate translated PSD and PNG files just by clicking a button.

See the video below for more information. It shows you how to install the Get Localization for Photoshop extension and how to use it together with other Get Localization services.

You can find more information and download from http://www.getlocalization.com/photoshop/

Quick i18n Tip for Sublime Text Users

Quick i18n Tip for Sublime Text Users

Do you hate wrapping your content with i18n tags? Yeah me too, however your editor might do this much easier for you. Here’s a quick tip on how you can create a shortcut to add e.g. a Django trans template tag around a string in Sublime Text:

1. Open your keymap preferences: Sublime Text → Preferences → Key Bindings (User)

2. Add the following snippet there:

{ 
 "keys" : ["ctrl+shift+g"], 
 "command" : "insert_snippet",
 "args": {
 "contents": "{% trans \"${0:$SELECTION}\" %}"
 }
}

Now when you select the text and hit ctrl+shift+g, it wraps the text with Django’s i18n template tag like this:

{% trans "Continue" %}

If you have any other  tips how to do i18n easily, let us know in the comments below.

Get Localization Testfront (BETA) and other updates

Get Localization Testfront (BETA) and other updates

Introducing Get Localization Testfront

We have always been strong advocates of giving translators context information and have emphasized its importance in pursuing an efficient translation process. Whether the translators are professional or from the community, they will translate the content wrong if they don’t understand the context. However, the performance of the translators is also equally important, they need to be able to work fast and immediately get it right.

Websites and web apps are challenging as they can be huge and contain a lot of hidden content such as dialogs and different pages. There’s a lot of content to translate and therefore testing and finding the right context is difficult. Get Localization Testfront is an additional tool to our editor to test & refine the translations on the page itself. There you can immediately see whether your translation properly fits in layout-wise and context-wise.

As they say, a screenshot is worth a thousand words so here are a few:

Image
You can preview the translation in the web page itself

Image

So what you can do is that you can review the translation in its actual layout right in the editor, the same place where you do the translation. You can also edit the translation on the page itself and switch between the normal editor and Testfront by just clicking a button. Testfront also learns more when it’s used and is able to find the exact page where the string appears.

We are currently in the beta stage with this, so you can enable the feature in the Settings if you want and let us know how it works for you.

New Profiles

You can also see that the new profiles have finally landed. Your profile page is now much clearer than before and provides more information about the projects you are participating in. This has been a very popular wish so let us know what you think!

Android Context Information

Android files can now contain context information by defining a comment attribute to string element, for example:

<string name="menu_stop" comment="After item Start in Menu">Stop</string>

This context information will be displayed in the context field in the translation editor and help the translators to get their translation right the first time.

Introducing Get Localization for Mac (BETA)

Introducing Get Localization for Mac (BETA)

gl-mac-iconNo more ibtool, genstrings or dragging xib and strings files around. Get Localization for Mac is here!

Get Localization for Mac is by far the simplest way to localize your iOS and Mac OS X apps that have been developed using Xcode. It manages all the files and it generates the strings files from your Objective-C and XIB files and updates them. It also syncs them between Get Localization and your Xcode project. Just select your .xcodeproj file, log-in and select the project where you wish to sync your strings files and you are ready to go.

But first let’s walk through how to internationalize your iOS or Mac OS X app. If you are familiar with internalization for iOS and OS X you can skip this part.

Prepare Your App for Localization

Objective-C (.m and .mpp files)

In order to localize your app you simply need to wrap all the hard-coded strings with an NSLocalizedString function call in your Objective-C files. For example:

[alert setInformativeText:NSLocalizedString(@"Hello World"@"This is a comment, it appears in Get Localization editor")];

XIB files

xcode-1Get Localization for Mac will automatically manage all your XIB files and related strings files. All you have to do is to select  in Xcode which XIB files to localize.

1. First select the Xib file and then open File Inspector (typically the first document icon to the right, see screenshot)
2. Click the ‘Localize’ button. When Xcode asks if you want to localize, choose ‘yes’. It’s also recommended to select English here as a language as the BETA version only supports English as a master language at the moment.  You don’t need to add any languages here, rest will happen magically.
3. This will move the selected xib file to en.proj directory. This is normal and required by the process. Language specific folders and xib files are built automatically for you by Get Localization for Mac when you choose to sync the files.

That’s it. Now your app is ready for localization.

Localization Made Easy with Get Localization for Mac

Get Localization for Mac automates everything. It will

  • Configure your Xcode project properly
  • Generate Localizable.strings files from your Objective-C files
  • Generate XIB specific strings files from each XIB that is marked for localization in Xcode (resides in en.lproj folder)
  • Update your existing translations to Get Localization if they are available in your Xcode project
  • Add these files to the Xcode project automatically (no need to drag’n’drop every file manually)

screenshot-1

You can add multiple Xcode projects to Get Localization for Mac to sync them easily.

screenshot-1.5

Just drag’n’drop your Xcode project to a new empty Get Localization project or choose any existing project you have access to. If you have any existing translations in your project, they are updated as well. Please note that if your project is big, it may take a moment to process all your files when uploading for the first time.

screenshot-2

You can choose which languages to sync to your Xcode project. Just simply click “Sync” and  latest translations are updated to your app and new strings files are generated and sent to translation.

Try It Out – Download the Beta

Please note that Get Localization for Mac is an early beta version. It will be later available through Mac App Store but now during the public beta phase you can download it via the following link.

Download Get Localization for Mac BETA

Please report all the bugs or problems that you may find by creating a ticket in our support system.

Apps Localization for Nokia Series 40 and Asha

Apps Localization for Nokia Series 40 and Asha

700-nokia_301_dualsim

We have recently added support for the Nokia Java SDK, which is an Eclipse based IDE for Java ME development. This post covers basics on how to get started with localizing your Java ME apps for multiple languages by using the Get Localization Sync plug-in and Nokia Java SDK.

Getting Started: Install Everything

If you don’t have the latest Nokia Java SDK, you can download it from http://www.developer.nokia.com/Develop/Series_40/.

Then you need the Get Localization Sync plug-in.

    • Open your Nokia Java SDK
    • Choose Help -> Install new software…
install
Installing the plug-in
  • Click ‘Add…’
  • Enter a name for the repository, e.g. Get Localization
  • Enter the repository location, which is http://getlocalization.sync.s3.amazonaws.com
  • Click ‘Ok’
  • Check ‘Get Localization Sync’ plugin
  • Click ‘Next’ and follow instructions

Internationalization

If you are not aware of the concept of internalization or I18n, please refer to our earlier blog post Software Internalization for Dummies. Java ME is one of those frameworks that are shipped without a standard internalization framework. Fortunately Nokia provides internalization support within their SDK and it’s easy to set up.

When you create a new project, you have an option to ‘Enable Localization Support’ (see screenshot below). This feature allows you to localize  your application strings easily.

enable_l10n_support
Screenshot #1

TIP: If you already have a project and/or an existing app, you can enable the localization support by right-clicking your project and selecting ‘Mobile Tools for Java’  ⇒ ‘Enable Localization’.

So now you have everything set up, let’s see what the SDK created for us:

created_files
Screenshot #2

As you can see, there’s now two new files inside the package that we defined in the previous step.

L10nConstants.java – This is a generated Java file and will contain all the metadata of your localization data.

L10nResources.java – This is a utility class for loading the strings inside your UI.

Then we got the new editor called Localization Data. This editor is used to manage all your application strings. First you need to add your first ‘locale’ i.e. the language your application will be translated from. We recommend writing the initial version in English, as it’s easier to find translators to translate from English than other languages. Click the ‘Add locale’ button and it will add automatically en-US language for you. Make sure to check ‘Default locale’ on for this language (you can find this option to the right). You can also modify the language and country code here if you want but it’s not necessary if your app is in English.

Next you can add your first entry. Entry is a string you are using in your application, let’s say you have a ListBox element and you are setting a title for it like this:

listBox.setTitle("My Awesome App");

Now, what you want is to add this very same text as an entry to the localization file. Click ‘Add entry’ button in Localization Data editor and define key for this entry e.g. LISTBOX_TITLE and then the value ‘My Awesome App”‘ Hit save and now a few things happened:

1. Inside the res folder you can find a file called messages_en-US.properties. This is a master file which will be translated into another languages.
2. L10nConstants.java was generated and updated.

This means that you can now modify your code to use these new classes.

First of all, you need an instance of L10nResources, for example:

L10nResources res = L10nResources.getL10nResources(null);

Given parameter is null here but you could also define language code here e.g. “en-US” or “fi-FI”. It’s good for testing purposes so you don’t have to change e.g. your emulator language. Giving null means that it will try to use the same language the device is currently using.

Now we can actually load the string from resources instead of hardcoding it:

listBox.setTitle(res.getString(L10nConstants.LISTBOX_TITLE));

That’s it. Now the text is always loaded from resource files based on the phone language.

Localization

That was easy. Now it’s time to start translating your app and for that Get Localization is the perfect companion. It is a browser based service that will help you manage the files, translate them and even let you to manage your own translators if you wish. This part assumes that you are familiar with Get Localization already. If not, then please  visit the frontpage, take a tour or if you have questions, create a support ticket in the ticketing system and someone will get back to you ASAP.

Configuring the Get Localization Sync Plug-In

First you need to configure your Get Localization Sync plugin. I hope you already installed it but if not, please refer to the section ‘Getting started: Install everything’.  Now in Package Explorer, right-click your project name e.g. MyApp in Screenshot #2 and select ‘Properties’. Then find Get Localization Sync leaf in your properties and you should see the below screen:

sync
Screenshot #3

The following fields are used:

Username – Your Get Localization username

Password – Your Get Localization password

Project – Your Get Localization project name (same that appears in project URL e.g. http://www.getlocalization.com/example/, where example is your project). If you don’t have project, please create one first at http://www.getlocalization.com/signup/

Default Platform – Platform you are developing on. IMPORTANT: You should choose “Java Properties (UTF-8)”

Pull file filter allows you to filter which files you wish to pull to your Eclipse project. For example just pull all the .properties files, you can use filter:

.*?properties

Replace rules can be used to alter file names when they’re pulled to project. Typically it’s not necessary but you can e.g. rename language codes in files in case they happen to be wrong.

Replace rules can be imported and exported so if you manage to do proper rules, please do share them with us. We’re happy to add them to our library.

Sending Files to Translation

Simply right-click the file in the res folder called messages_en-US.properties, then select ‘Get Localization Sync’  ⇒ ‘Send to translation’.

send_to

Syncing Translations Back to Project

When the files have been translated, you can sync them easily back to your project. Right-click ‘res’ folder and select ‘Get Localization Sync’  ⇒ ‘Sync translations to this folder’ and that is it.

sync_back

Localizing Your Other Data

Metadata such as Store Description

It’s highly recommended to localize your store description and other meta data. You can add multiple files to Get Localization so it’s easiest to add the store description e.g. as a plain text file. You can do this via browser on Get Localization project (Files tab)  or via the plug-in.

Dates and Times

Java ME does provide some help to localize dates and times. What you want to do is to provide them both in the same format based on user settings. These settings are already configured in the device and accessing them is easy.

Dates

You can get currently used date format using following piece of code:

String format = System.getProperty("com.nokia.mid.dateformat");

This method returns for example these values with following settings:

Gregorian calendar date in little endian format: dd-MM-yyyy

Gregorian calendar date in big endian format: yyyy/MM/dd

Gregorian calendar date in big endian format: yyyy-MM-dd

Note that the date separator can be often changed from the phone settings.

Time

In a similar way you can also get the time format which the Nokia Series 40 or Asha device is configured to use.

String timeFormat = System.getProperty("com.nokia.mid.timeformat");

In this case the return values are a bit simpler:

HH:mm means 24 hours clock

hh:mm a means 12 hours clock

Get Localization Sync for Eclipse

Get Localization Sync for Eclipse syncs your translation files between Eclipse and your Get Localization project. It’s very easy to use and allows developers to use their time to actual development instead of arranging and managing localization files.

Installing Get Localization Sync for Eclipse

Install from Eclipse Marketplace

Just select Help -> Eclipse Marketplace and search “Get Localization”

Install using “Install new software…” option

1. Choose Help -> Install new software…
2. Click “Add…” button
3. Enter name for repository e.g. Get Localization
4. Enter repository location, which is http://getlocalization.sync.s3.amazonaws.com
5. Click Ok
6. Click “Uncategorized” and check Get_Localization_Sync -plugin
7. Click “Next” and follow instructions

Setting Up Get Localization Sync for Eclipse

Settings are project specific and they can be easily found under your project properties.

Setting up Get Localization

In properties, you can find the Get Localization Sync plug-in.

Username – Your Get Localization username
Password – Your Get Localization password
Project – Your Get Localization project name (same that appears in project URL)
Default Platform – Platform you are developing on. It defines the file format of your i18n files. You can also set the format for individual files from their properties if you happen to have multiple different file formats in your project.

Sending Files To Translation

Right-click the file you wish to send to Get Localization and select “Get Localization Sync -> Send to translation”. Note that these always should be master files (files that translators translate from, typically in English), never send files that are in different language than your other master files.

Sync Translated Files Back To Project

After translation, you can easily sync the files back to any folder you wish.

Android Projects

Get Localization Sync for Eclipse handles Android projects specially when translations are synced back to “res” folder. They are automatically placed into appropriate values folders so they work in your application without any modification.

Update to Get Localization Sync for Eclipse

We’ve released a new version of Get Localization Sync for Eclipse. You can find it from Eclipse Marketplace, just search for Get Localization and install.

This update features couple of important new features:

Pull file filter allows you to filter which files you wish to pull to your Eclipse project. For example just pull all the strings.xml’s you can use filter:

.*?strings.xml

Replace rules can be used to alter filenames when they’re pulled to Eclipse project. You can for example create rules that change the language codes or installation path. E.g. if you wish to change language code from pt-BR to pt-rBR, just create following replace rule:

pt-BR/ -> pt-rBR/

Replace rules can be imported and exported so if you manage to do proper rules for example Android or some other platform, please do share them with us. We’re happy to add them to our library.



How To Automatically Sync Master Files From GitHub

Some people have asked us how to setup an automatic master file sync from GitHub to Get Localization when commit is done. We’ve done a short video previously that explains it but here’s step-by-step instructions as well:

1. First import the file from GitHub to Get Localization. You can done this from Files → Import from SCM → GitHub

2. Select the file you would like to import to master files, typically it’s the English resource file.

3. Now as soon as file is imported successfully, go to your GitHub project and open ‘Admin’-page.

4. Click ‘Service Hooks’

5. Select ‘GetLocalization’ from the list of service hooks.

6. Enter your project name, it’s the same as in your Get Localization address e.g. http://www.getlocalization.com/<project-name&gt;. Also copy your project token from your Get Localization project settings page and paste it to corresponding project token field in GitHub.

66. 

7. Set project ‘Active’ and then click ‘Update Settings’

And that’s it. Now when you do the commit, all the files you’ve imported to master files will be automatically updated from GitHub.