Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Localizing in Xcode 4 with Localizable.String

I just updated to Xcode 4.

Normally when localizing apps we add "Localizable.String" file to the project, and then navigate to "Get Info" menu and click the "Make It Localized" button.

However, in Xcode 4, there is no "Get Info" menu.

When I try to add a language it only effects the "InfoPlist.String" file (which can only localize the app's name).

How may I add localization to my app in Xcode 4?

like image 747
jacob Avatar asked Mar 18 '11 07:03

jacob


People also ask

How do you implement localization in Swift 4?

Click on iOS->App/Single View App->Next. Name your project and select the language as Swift. Select a desired location and click on Create. To start with Localization, click on your Project Name -> go to Info Tab -> Under Localizations, click on the '+' button.

How do I use localization in Xcode?

Open Info tab, and click “+” button under Localizations section. Then choose a language you want to support from the dropdown list shown. XCode opens a dialog showing resources to be added for the new language.

How do I localize a string in Swift?

Select the project and under “Localizations”, click the “+” icon. Add any language you want (I selected Italian) then click on “Finish”. Now go back to Localizable. string file, select it and on the File Inspector (right menu) select “Localize”.


2 Answers

It's simple once you understand it.

If you want to accomplish this with Xcode 5.x and iOS 7 or Xcode 6.x and iOS 8, check out "How to localize my app with Xcode 5?" instead.

I liked SNR's link, but his answer was a bit short.

Also, I see that this question is a bit old, and my answer may be different from older versions of Xcode. (I used Xcode v. 4.3.3)

However, i have updated my answer to work with both Xcode 4.3.5 and below + 4.4 and above (and Xcode 5.x and 6.x here: How to localize my app with Xcode 5?).

To begin you should add a new "Strings File" in the iOS Resource category.

Strings File

Next, create the file as "Localizable.strings". Create As

When the file is created, select it and open File Inspector .

The Localizable FileFile Inspector

EDIT: Things have changed (a bit) with the new Xcode 4.4, 4.5 (and above) (for iOS 6 support). If you'r Not using Xcode 4.4 or above, joust skip this step.

{ The Xcode 4.4, 4.5 (and above) way:

Click the "Make localized" button Make localized button

Now head over to your Main Project page. Main Project page

And click the "+" button under Localization, and select the languages you want to support.

(I'll select German / Deutsch)

List of languages

Now a window will appear asking you what files you want to localize, make sure Only the "Localizable.strings" file is selected and click Finish.

Only the "Localizable.strings" file is selected

}

{ The Xcode 4.3.5 and below way:

Click the "+" button under Localization, and select the languages you want to support.

(I'll select German / Deutsch)

List of languages

}

.

.

.

.

You should now see that you have two files under the "Localizable.strings" file.

Localizable Files

Next, add your localization strings inside both of the localization files.

English

German

Now here comes the coding part.

Here i'll simply declare a UILabel and set it's text to the Localizable file string.

Declare:

IBOutlet UILabel *testLabel; 

And Inside ViewDidLoad i'll set the text using NSLocalizedString:

[testLabel setText:NSLocalizedString(@"TEST", nil)]; 

To finish up, just connect our testLabel in "Interface Builder".

Connect IBOutlet

Now you should be able to run the Project and see the localized string. And if you change the language, you should see the localized string change as well.

English ResultChange the languageGerman Result

like image 109
Aleksander Azizi Avatar answered Sep 28 '22 08:09

Aleksander Azizi


Select the file you want to localize and klick on the file inspector in the utilities section. There is a section Localization

like image 43
Pierre Avatar answered Sep 28 '22 09:09

Pierre