Search code examples
iosxcodestoryboardinterface-builderxcode9-beta

Xcode 9 - Localization Issue Warning Storyboard


I am currently testing out Xcode 9 beta 3 at the time of this writing.

When viewing the storyboard I am receiving a list of warnings indicating that in other languages/regions my fixed constraint will pose an issue.

The application is fairly complex and many views are experiencing these warnings.

The warning is:

Certain autolayout constraint combinations may result in an appropriate layout in the current development language but will pose issues in other languages and regions.

I know that the app will not be used in any other languages anytime soon.

Is there any way to turn just this warning off? It sounds silly but I can not stand seeing all my views with the yellow the warning icon and count at the top (110 warnings!)

localization issue


Solution

  • The source of the unwanted warnings is that Xcode defaults to having storyboards "prepared" for localization. They are "prepared" by setting them up using base internationalization.

    To completely disable this warning in a particular storyboard, you need to let Xcode know that the storyboard should not be considered localizable. The easiest way I was able to do this was to simply move the storyboard file from the Base.lproj folder up one level and re-add the file to the project. Once I did that, the warnings went away.

    Steps

    This process should work with old and new projects. Tested on Xcode 9.1 using a project created with Xcode 9.1

    1. Move the storyboard from the Base.lproj folder up one level via Finder
    2. Delete the storyboard reference from your project via Xcode
    3. Drag and drop (or otherwise re-add) the storyboard to your project
    4. Verify using the File Inspector that the storyboard no longer has base localization

         

    Pictorial Walkthrough

    Xcode defaults to having storyboards "prepared" for localization

    Xcode default storyboard folder structure

         

    Move your storyboard files out of the Base.lproj folder to prevent the warnings

    Desired folder structure

         

    Delete the file reference

    Delete the file reference

         

    Re-add the storyboard

    Drag and drop the file back into the project enter image description here

         

    You'll see the "Localize..." button when you've succeeded

    Yay! No more warnings

         

    If you want to localize in the future

    Just tap the "Localize..." button and follow the prompts from Xcode. Additionally, you'll actually need to address the warnings that Xcode is telling you about. There are various ways to address them, I recommend this question to get started.

    For a video demonstration of the process, watch this screen recording