Think localized marketing material, screenshots etc. Think about how frustrating and painful it is to create localized graphics and especially keep themupdated. 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.
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)
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:
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.
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.
No 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")];
Get 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)
You can add multiple Xcode projects to Get Localization for Mac to sync them easily.
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.
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.
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.
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.
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:
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:
That’s it. Now the text is always loaded from resource files based on the phone language.
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:
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:
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’.
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.
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.
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.
In a similar way you can also get the time format which the Nokia Series 40 or Asha device is configured to use.
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.
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.
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.
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:
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.
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>. Also copy your project token from your Get Localization project settings page and paste it to corresponding project token field in GitHub.
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.