我使用 flexmojos 插件来管理我的 flex 应用程序。一开始我用的是flexmojos3.8,下面是创建独立资源模块的fragment。如果我的应用支持 en_US、zh_Ch,我可以获得 MainApp_en_US.swf 和 MainApp_zh_CN.swf。在我的应用程序中,我可以根据浏览器的语言加载适当的资源模块。
<plugin>
<groupId>org.sonatype.flexmojos</groupId>
<artifactId>flexmojos-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>com.adobe.flex</groupId>
<artifactId>compiler</artifactId>
<version>${flex.sdk.version}</version>
<type>pom</type>
</dependency>
</dependencies>
<configuration>
<sourceFile>MainApp.mxml</sourceFile>
<resourceBundlePath>
src/main/flex/locale/{locale}
</resourceBundlePath>
<runtimeLocales>${locales}</runtimeLocales>
<mergeResourceBundle>false</mergeResourceBundle>
<runtimeLocaleOutputPath>
/{contextRoot}/MainApp_{locale}.{extension}
</runtimeLocaleOutputPath>
<rslUrls>
<url>/{contextRoot}/rsl/{artifactId}.{extension}</url>
</rslUrls>
</configuration>
</plugin>
但是当我升级 flexmojos 4.0-RC2 时,我发现变化很大。配置更改为..... MainApp.mxml src/main/flex/locale/{locale}
<localesRuntime>
<locale>en_US</locale>
<locale>fr_FR</locale>
<locale>zh_CN</locale>
</localesRuntime>
//Output resource module to current pathe (/target)
<localesOutputPath>
/
</localesOutputPath>
//Define your resource moudle name pattern
<resourceBundleNames>
MainApp_{locale}
</resourceBundleNames>
.....
</configuration>
经过大量尝试后,它起作用了。最后一个配置如上。