In this post, I want to focus in some components that provide an important link from the host web to the app itself. Host web features, such as app parts and custom actions, are vital in connecting experiences in SharePoint to your app. Localizing host web features is of the utmost importance.

Localizing app parts and custom actions can be a little difficult because Visual Studio 2012 does not properly package resource files for these features. If you try to use a resource string in an app part, the app part displays the resource string name, and not the value as expected. The following image shows the result of trying to localize an app part by using the strings in the host web resource file.

Figure 1. Failed attempt to localize an app part with strings in the host web resource file

However, the workaround is not too complicated. Resource files are actually included in the app package. The only missing parts are the OPC (Open Packaging Conventions) relationships to resource files in the app package. OPC relationships define an association between two items—in this case, the resource file and the package.

You can manually add the relationships to the app package, as explained in How to: Localize apps for SharePoint. But manually adding the relationships prevents you from using F5 to automatically build, deploy, and debug your app. To be able to use F5 to debug a localized app, you can use a program or script in the pre-deployment event of the app project in Visual Studio. The sample project in this article is a Visual Studio solution that does exactly what we need: it adds the missing relationships to resource files in the app package.

You can build the AddRelsToAppPackage project and use the compiled executable in the pre-deployment event of your app for SharePoint project. Just follow these steps:

Build the AddRelsToAppPackage project.

Copy the executable file to the root folder of your app for SharePoint project.

Right-click your app for SharePoint project, and click Properties.

Click the SharePoint property page.

Type the following command in the pre-deployment command line: "$(ProjectDir)\AddRelsToAppPackage.exe" "$(TargetDir) " Important: The trailing space after $(TargetDir) is required.

Now you can debug your app for SharePoint by using F5. The following image shows a localized app part that uses the workaround.

Figure 2. Successfully localized app part using the AddRelsToAppPackage tool

The AddRelsToAppPackage project should meet the basic requirements to localize host web features in apps for SharePoint. Feel free to edit the Visual Studio solution if your app has additional requirements. As a reference, here are the tasks performed by the AddRelsToAppPackage project:

Opens the folder provided as the first parameter

Retrieves the first file that matches the search pattern *.*app

Extracts the file that includes the OPC relationships for the host web features

Loads the contents of the file in an Xml object

Adds an OPC relationship to the Xml object for every resource file in the root folder of the app package

Writes the content back to the file

I hope you are successful in localizing your app for SharePoint. By localizing your app, you can provide a better experience and reach more customers.