Re: WOResourceManager, opposite of stringForKey
Re: WOResourceManager, opposite of stringForKey
- Subject: Re: WOResourceManager, opposite of stringForKey
- From: Dev WO <email@hidden>
- Date: Fri, 7 Jul 2006 15:07:38 +0200
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".
That sounds terribly good:)
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.
I'll try that, it seems the exact thing I need.
Thanks a lot Jean-François:)
Xavier
- 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