Unable to resolve resource bundle “App” for locale “en_US”.

Unable to resolve resource bundle “App” for locale “en_US”.

Cause
The compiler can’t find the resource bundle with the filename “App” in the locale (folder or resource.swf) for en_US.

This may be because the locale property files are not included in the compiler arguments.

Taken from this article:
To include them via the command line use the syntax:

mxmlc –locale=en_US,fr_FR,de_DE,ja_JP –source-path=./locale/{locale}

In Flash Builder use:

-locale en_US de_DE fr_FR ja_JP –source-path=./locale/{locale}

or in newer Flash Builder builds you may omit the source path argument:

-locale en_US de_DE fr_FR ja_JP

Note: When modifying the compiler arguments this way, there is no equal sign (=) and the locales are not comma-separated.

The {locale} at the end of the source-path value for each of these methods is used to dynamically specify the locales for the application. The {locale} is replaced by each of the locale values that you specify using the – locale option. So, if you modify the names of your locale folders, make sure those changes are reflected in the compiler arguments as well. As an alternative, you could also add each source path manually (for example: src/locale/en_US , src/locale/de_DE , and so on).

Note: You may get a compiler warning, “Source path entry, ‘PROJECT_HOME/localization-part-i-end\src\locale\en_US’, is a subdirectory of source path entry, ‘PROJECT_HOME\localization-part-i-end\src’”. This is normal, and won’t stop your application from functioning as expected. However, if you want to remove this warning, add the additional compiler argument “-allow-source-path-overlap=true”.

Note: You may get a compiler error:
unable to open ‘/Applications/Adobe Flash Builder 4.5/sdks/4.5.2/frameworks/locale/–source-path’ This occurs when you have included the -source-path argument when it is not necessary. Remove the -source-path argument.

Cause
For every locale that you support in your application, you must ensure that the framework resources for that locale are present. Essentially for each of your application’s locales, a specific set of SWCs must be in place for your application to compile and work properly. You can see what these files look like in the following folder:

FLEX_HOME/sdks/x.x.x/frameworks/locale/en_US/

So, for instance, if you want to support Italian (it_IT) in your application, you’ll want to make sure that the necessary localization files are also present in a folder it_IT within the frameworks/locale folder alongside en_US. Conveniently, the Flex SDK provides a utility, named copylocale, that simplifies this process.

Note: By default in newer Flash Builder builds there are 14 locales already in that directory. You may not need perform the above action.

Cause
The locale folder is not in the src directory but outside of it. Move it into the src directory.

Read more about this here.

Cause
Another cause may be when you have a metadata tag in your main MXML file that is including a resource bundle. You may need to remove or add it. Depending on Flex version depends on your action. I can’t verify what versions support what action you can test both.

<fx:Metadata>
	[ResourceBundle("App")]
</fx:Metadata>

Cause
The resource files may not be UTF-8. Change the file type to UTF-8. You can do this by opening the file and placing the cursor into it. Then goto Edit > Set Encoding Type and set to UTF-8. It may ask you to resave. Resave.

About Judah

Please note in the comments if this has helped you or not.
This entry was posted in Compiler. Bookmark the permalink.

3 Responses to Unable to resolve resource bundle “App” for locale “en_US”.

  1. todd says:

    thanks judah, everything was working fine in intellij and through jenkins but when i started my project in fb in barfed. Turns out fb wants the -source-path ../locale/{locale} explicitly defined as you describe in the first cause.

Leave a Reply

Your email address will not be published. Required fields are marked *

Highlight your code before posting code:

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="">