Re: WOResourceManager, opposite of stringForKey
Re: WOResourceManager, opposite of stringForKey
- Subject: Re: WOResourceManager, opposite of stringForKey
- From: Jean-François Veillette <email@hidden>
- Date: Fri, 07 Jul 2006 08:32:34 -0400
I see you really need a bidirectionnal mapping.
A dictionary won't help you in that case (uni-directional).
Hmmm ...
What about keeping the configuration in a .strings like format (old
style .plist), but when you load it, you create bidirectional access to
it.
So you load it as usual in a dictionary, providing you a
"unified"->"translated" mapping. Then, you run on your keys/values and
you create a second mapping that will be "translated"->"unified".
You will have to handle it all yourself, woresourcemanager won't be of
any help here since it can only to mono-directional mapping.
Create a URLNameMangler class, that will handle all that stuff.
- jfv
Le 06-07-07, à 01:39, Dev WO a écrit :
It seem that you will have an web-server rule to mangle the url.
Whatever the rule, once you get in WO, and you hit the DA, set the
current language for the rest of the request, then in
performActionNamed(), you will first look in the localized .strings
file dictionary for that key (usual resource manager call), and
execute super.performActionNamed(~withTheValue~).
I may not be able to do exactly that, as I'll probably have component
which will contain "several" pages, but it seems the right direction:)
such a setup would have .strings file look like the alias file
proposed earlier.
{ "une-page-en-français" = "aUnifiedPageName"; ... }
I think I better understand now, but it raises another question:
how do I generate the different WOHyperlinks inside my pages to
navigate? I can't request stringForKey now as the key is different for
each language:(
You can also use a different file than the default
"Localizable.strings"(?not sure the default name?), something like
"UnifiedDirectAction.strings".
I really think that looking for a key given a value is a no-go, to
paraphrase an old colleague : "it's a prescription for pain".
- jfv
Le 06-07-05, à 09:31, Dev WO a écrit :
Hello Jean-François,
I may be wrong, but my problem is the opposite.
I have to had urls like:
French: http://www.domain.com/fr/une-page-en-français
English: http://www.domain.com/en/a-page-in-english
with a .strings file with:
aPage = "a-page-in-english"
localized in
aPage = "une-page-en-Français"
And in my DA, I'd like to be able to directly get the key aPage from
whatever localized string (either a-page-in-english or
une-page-en-Français in this case).
I'm not even sure I made myself clear;)
so here's what I want to do:
-get each part of the url in a separate variable (for example,
language and pagename)
-get the corresponding key for pagename
-passing the language to the pagename component
Basically that's what I'd like.
I'll try to rethink that a little bit...
Thanks,
Xavier
Why not reverse the problem and use an alias mapping.
it would look like this :
{
// english alias
search = "search";
find = "search";
// french alias
recherche = "search";
trouve = "search";
}
then in you DA, you would overwrite :
public WOActionResults performActionNamed(String anActionName)
to check the alias and finaly execute the right action.
- jfv
Le 06-07-04, à 15:55, Dev WO a écrit :
Hello Chuck,
On Jul 3, 2006, at 6:53 AM, Dev WO wrote:
Hi guys,
I'm probably missing something obvious, but I just don't see
it...
Is there any simple way to get a key from a string? assuming the
string will be localized using the .plist method.
No. And even if there was, the best you would get is a list of
keys that match the string. Keys are unique, strings don't have
to me.
That's right, huum I didn't though about this...
I know I can compare the string I get with the string for each
language using stringForKey, but I though there's a convenient
way to get the key directly.
Why are you passing localized values to a direct action? Would
it not be better to pass the key in the URL rather than the
localized version?
search engine:), the name in the URL is very powerful, so I have
no choice but use it in the url.
I could use Apache rewrite to translate it to the correct key
internally, but it would be more difficult to maintain on the
development machine...
Chuck
I've been working on a new version of a website, with some
parts that will be multilingual.
After reading about that, I decided to go the .strings way,
with a localized .strings file (as the site isn't really
dynamic).
It will be mostly DirectAction based.
So here's my question:
How can I access a key in my .strings file based on the value I
got?
I mean, I know how to get the value from a key using
WOResourceManager, but I'd like to ba able to request the
opposite: the key based on (a localized) value.
That way I could make my DA more easier to maintain and a lot
more smaller than explicitly write all the possible case in
every language available.
I've red the WOResourceManager API, but without success.
Thanks for your help, have a nice sunday;)
Xavier
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden