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      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to archive@mail-archive.com

Reply via email to