Maybe all this will help someone else here looking for a solution to
this problem (and maybe some kindly bots will run across it at some
point too). In short, you have to compile your own SWCs for each of the
languages, and not just the resource library SWFs every other
instruction set tells you about. This means finding out on your lonesome
all the translations for days of the week and months of the year, and
anything else pertinent like date and currency format defaults. The
steps are:

1) use the copylocale to copy the en_US files to your new language
directories.
2) edit the .properties files located in your equivalent of
C:\Program Files\Adobe\Flex Builder
3\sdks\3.2.0\frameworks\projects\framework\bundles\es_ES\src. The
dayNames and monthNames key/value pairs are located in
SharedResources.properties
3) recompile the framework_rb.swc file. From within C:\Program
Files\Adobe\Flex Builder 3\sdks\3.2.0\frameworks\ I used the following
command (taken from the build.xml script, which I'm still struggling to
get working - seriously damaging my cred).

compc
   -locale=es_ES
   -output="locale/{locale}/framework_rb.swc"
   -include-resource-bundles SharedResources collections containers
controls core effects formatters logging skins states styles utils
validators
  
-source-path="projects\framework\bundles\{locale}\src","projects\framewo\
rk\src"
   -external-library-path="libs\player\9\playerglobal.swc"

4) from your project's root directory, re-run your language compiler for
each of the languages. Again using Spanish as an example, use:

mxmlc
   -locale=es_ES
   -source-path=locale/{locale}
  
-include-resource-bundles=LanguageResource,SharedResources,collections,c\
ontainers,controls,core,effects,formatters,logging,messaging,rpc,skins,s\
tyles,utils
   -output=src/Resources_es_ES.swf

Formatters will now do their internationally spelled magic. Hopefully
this will all become useless very soon, with Adobe just handing over all
these languages by default.

A man can dream. A man can dream.

- MrB

--- In flexcoders@yahoogroups.com, "Ben Reynolds" <mrb...@...> wrote:
>
> Okay, I have what I suppose is a solution to this, but I'm still short
a coupla answers.
>
> 1) I ran the resource-bundle-list option again on my application
>
> mxmlc -locale= -resource-bundle-list=myresources.txt
-include-libraries+=..\libs\CairngormWithExtensions.swc app.mxml
>
> which came up with:
>
> CairngormMessages LanguageResource SharedResources collections
containers controls core effects formatters logging messaging rpc skins
styles utils
>
> The difference is the SharedResources and formatters, which wasn't in
the original.
>
> 2) I recompiled the resource bundles (skipping CairngormMessages,
which I'm not using) over the 15 languages. ie.
>
> mxmlc -locale=da -source-path=locale/{locale}
-include-resource-bundles=LanguageResource,SharedResources,collections,c\
ontainers,controls,core,effects,logging,messaging,rpc,skins,styles,utils
-output=src/Resources_da.swf
>
> So now it doesn't fall over on MMM or MMMM.
>
>
> However, I have but face. Also, I'm about to make some assumptions...
The copylocale that I used earlier to create the resources seems to do
exactly that: copies. It doesn't actually create a proper locale for all
those places. So "January" in en_US is still "January" in it_IT when,
according to Babelfish, it should be "Gennaio" etc. etc.
>
> What can I do about this?
> Where can I get proper versions of these locales?
> Is there a way to get the names from the operating system and apply
them to DateBase or is this already happening and I just can't see it
because I'm running an English machine?
>
>
> Danke for any light you can shed on this.
>
> --- In flexcoders@yahoogroups.com, "Ben Reynolds" mrben1@ wrote:
> >
> > Hey guys,
> >
> >    I have a Flex 3 app that employs dynamic resource management -
pretty
> > much a cut-n-paste job from the Adobe sample - with the ComboBox to
> > switch languages. I did all the copylocale rigmarole and it's all
> > working perfectly with the languages I've set up.
> >
> >    However, when I try to call a DateFormatter with a full month
(MMM or
> > MMMM) in the formatString it crashes and burns with the following
error:
> >
> > TypeError: Error #1009: Cannot access a property or method of a null
> > object reference.
> >      at
> >
mx.formatters::DateBase$/http://www.adobe.com/2006/flex/mx/internal::ext\
\
> > ractTokenDate()
> >
> > This is probably referring to the DateBase.monthNamesLong array;
> > formatting is not an issue with M or MM.  Am I perhaps missing
something
> > in the creation of my resource files? This is a sample of the
command I
> > used:
> >
> > mxmlc -locale=es_ES -source-path=locale/{locale}
> >
-include-resource-bundles=LanguageResource,collections,containers,contro\
\
> > ls,core,effects,logging,messaging,rpc,skins,styles,utils
> > -output=src/Resources_es_ES.swf
> >
> > But it even dies when the locale is set to en_US.
> >
> > Help? :)
> >
>

Reply via email to