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.
I’m proud to present a Get Localization June Release. It’s bigger than normally as it incorporates so many new features we’ve been cooking up for you guys. I’ll briefly introduce these features so you can get the idea what to expect. During coming days, we will provide videos and blog posts that cover these features more in detail.
This release is all about website translation. We’ve been extremely good in providing translation tools for mobile/app/client developers in the past but we felt that our offering for web developers was not that good. This is now changing as we introduce In-page Editor 2.0, a remarkable piece of technology that changes how websites are translated.
In-page Editor 2.0
We released our first prototype of In-page Editor last year June 23rd, almost exactly a year ago. We felt that there was huge potential in this technology but time just wasn’t right to go all-in with it. This is now changed, website translation is one of the key issues developers are struggling today and we want to help with that.
Insert code here
Previously our In-page editor was a bookmarklet (and it still is) but now in order to provide best possible user experience for translators we provide widget that helps you to incorporate In-page editor to your own site really easily.
It’s a small translate button in the left side of your website and clicking that allows you to start translating your site. So simple and easy. See for an example our company website and you can actually see how it works! (Some of the texts are using Cufón so they cannot be currently translated, shame on us!)
This is what you get after you click that Translate button. Editing work is happening in the page itself, here’s the screenshot of Wall Street Journal being translated to Finnish:
You can see right-away if the translation is breaking the layout or doesn’t fit to the context. After translation, the material is also available in our traditional editor as you can see from this screenshot:
With Or Without Internationalization Work
Here’s an example of Extras and PO file together:
Extras file contain all those strings that were translated with In-Page editor but were not found from django.po file.
Works with ALL Content Management Systems
You can translate all the content with In-page Editor. It works with WordPress, Sharepoint, Joomla, basically any CMS system in the market.
Get Localization Translate API
Get Localization Translate API is quite similar in architecture than famous Google Translate API. As you may know, Google Translate API is now deprecated and will move to paid model by the end of this year. API being really similar gives you an advantage to migrate easily from Google Translate API to Get Localization. Of course it won’t give you machine translation feature but it will give you an opportunity to translate your site really easily using crowdsourced or professional translators. This will definitely improve the readability and provide better experience for your users.
With Get Localization Translate API, you don’t need to use any i18n framework. You can simply use In-page editor to translate your site and with API, translations are available in similar fashion as using Google Translate API.
We would love to hear some feedback, I know this is quite much to digest at once so we will provide videos and more information that will clarify these features in coming days. So please, send us your questions and feedback and we will try to answer them. All the features are live already today so you can try them yourself. You can find the instructions under your project “Settings” tab. And just a friendly reminder that we reserve the right to limit your bandwidth if you go crazy so if you’re planning to use these with high traffic site, please contact us first to discuss about details.
We will also roll-out these new features to our Lingodesk product family as soon as possible. You can learn more about Lingodesk from our company website.