I deleted the Localizations in Xcode, then I cannot add any Localizations back I deleted the Localizations in Xcode, then I cannot add any Localizations back ios ios

I deleted the Localizations in Xcode, then I cannot add any Localizations back


Adding back a localization

When you delete your localizations sometimes you can get that situation where you can't add back any localizations in Xcode. Go to the command-line and create a ISO 639-1 two-letter language abbreviation folder with the lproj extension somewhere within your project.

Create an empty language folder

For example:

${SRCROOT}/Resources/Translations/nb.lproj

or

${SRCROOT}/Resources/Translations/en.lproj

Re-add language files to project

In the folder create an empty file called Localizable.strings and add this file to your project. Don't add the .lproj folder, just the contents. Then when you go back into the project file you will see the language under localizations. Now when you have added this, you should see the localization in your project.

No checkbox

If the added file, like a storyboard, doesn't have a checkbox next to it indicating that is part of that language localization you might need to round trip them through another language. To do this add a new language in the project. It should prompt you to copy the existing localized files over to the new language. Then delete the broken localization and re-add it.

My Example

As a specific example, I added the storyboard in the nb.lproj directory to the project. The Norwegian Bokmål appears in the project, but the checkbox for the language in the storyboard inspector won't let me add it. I created nb_NO in the project and it prompted me to copy over the storyboard. Then the storyboard had that checkbox checked. I deleted the 'nb' localization and re-added it. Now everything was the way I wanted it.


I had to solve same problem, and found one solution:

You need to find in finder your *.xcodeproj file and open it as container (ctrl+click on it and you will see it in context menu)

Here you can see project.pbxproj file, open it in Xcode. Its large (but still readable file).(it will be better to make some copy on save spot, before you start)

Now its the task to add the missing language to this file, and its done.(U can try it on other project with localizations).

There is paragraph you need to add. Search in this file for this /* End PBXSourcesBuildPhase section */(its paragraph right before localization paragraph which is missing) and add something like this after:

/* Begin PBXVariantGroup section */        27548D921611B0BE008EA1CD /* Localizable.strings */ = {            isa = PBXVariantGroup;            children = (                27548D941611B0BE008EA1CD /* en */,            );            name = Localizable.strings;            path = ../Code;            sourceTree = "<group>";        };/* End PBXVariantGroup section */

You have to do some changes first. Look at the long number 27548D921611B0BE008EA1CD, its ID of the localization file (or some xib file, or other localizable file...), if you dont have any in the procject, just add some Localizable.string file to the project, reopen(or refresh) this project.pbxpro, and find this Localizable.string you should find something like this:

275490591611B0BE008EA1CD /* Localizable.strings in Resources */

and this is it what you need to replace in localization paragraph

also you need to do right settings on path parametr and sourceTree. This twos are readable in fileinspector in xcode.

The "sourceTree" param is Location - mostly its relative to group so sourceTree = "<group>";

The path is path relative from the group to the file (if you dont know, try to make some localization files in different project and look at project.pbxpro, what all this works)

After this you can save project.pbxpro, and you should see in xcode info section "en" localization and you can add more localizations and all other localization stuff.


In xcode 6, do the following:

  1. With the command line, create the following directory/file structure somewhere outside your project directory:

    • /en.lproj/InfoPlist.strings

    • /en.lproj/Localizable.strings

  2. In Xcode, open your project and choose File>Add Files to ProjectName to add the recently created en.lproj directory.

  3. After that, you will see English in the Localizations list.