Thursday, 25 January 2007

CLF 2.0

One of the things that the gov't is doing is updating their common look and feel for websites. What I thought of as "CLF" before was just layout, colours and accessibility stuff.

Not so for CLF 2.0: they want all urls to be bilingual (english and french). Now, on the surface this doesn't seem so bad. So, you have to rename some folders or files, what's the big deal right?

What about applications?

You're talking about all GET requests having ALL pramaters in bilingual form.

I can see a couple of possible outcomes for this requirement:
1) this requirement is shown to be a bad and it is killed
2) All prams are obfuscated either
   2a) manually
   2b) by using numbers, not words (which is harder to remember, maintain, ...)
   2c) by some script that would do something like reverse all strings
3) Everything is done with Ajax and the url doesn't change no matter what people are doing like with google maps. Drawback (or advantage?) is that no one can ever enter an application from something other than the root directory.

Some implications as I see them:
1) All developers have to speak both languages well enough not to have to send everything off for translation and then refactor / test it when it comes back.
2) Since the pool of developers that speak both languages is smaller than uni-lingual:
   2a) the cost of development rises and quality stays the same
   OR
   2b) the cost stays the same and the quality drops
3) This won't work for COTS apps, so they will have to be either have to be re-written or an exception will have to be made for them
4) Before, url's didn't make sense to you (or you couldn't remember them) if you didn't speak the official language that it was written in unless you are bilingual. Now since all the url's will be bilingual, none of the url's will make sense to you unless you are bilingual.

Instead of making information easier for people to get to, it appears that it will be harder to access. *sigh* Gotta love government.

16 comments:

  1. Wow. Gotta love that design by committee. It's not like people even read URLs, or know what they mean. Why would the parameters in a URL have to be available in both languages. It's not like people read the URL, look at the parameters and change them to go somewhere else. Or at least not anybody except us computer geeks. How do you biligualize GET parameters when 97.3% of the time they aren't words but actually some kind of abbreviation for what they represent. I am all for all the pages being available in both languages, but who cares what the URL is. Nobody looks there, and nobody just types in URLs.

    ReplyDelete
  2. Yeah, that is coming up in my project too. I was lucky to have all my request parameters as constants in one class so it is easy to change one file only.
    However, I will be having some problems in my struts config file to rename all the action paths or duplicate them based on the language; like "/editSomething" needs to be duplicated or obfuscated like "/eS" or "/qwtegt123". Stupid really, but it will have to be done. Some guy on the client side said so.
    In government apps I would not use AJAX just yet since they still try to avoid using JavaScript. Also, this will prevent users to use bookmarking that can also become one of the requirements if that's not already the case.

    ReplyDelete
  3. That's just BS. I certainly haven't been told that i have to create 2 different pages for French and English. On all of my sites, i use a set of bilingual ASP.net controls that i wrote that have a Test_E and Text_F property (plus all of the other possible bilingual properties). All of the controls just read a session variable in their Render method and display the proper language based on that. Thus, i never use any French in anything except for the Text_F, ToolTip_F, ImageUrl_F, etc. properties; all of the pages and objects are named in English, all of the code is in English, all of the comments are in English. They'll just have to get over it if they don't like it. I'm not wasting my time writing, testing, and linking 2 programmatically identical websites.

    ReplyDelete
  4. Be patient young padawan. We were talking about url's only here. Content is obviously bilingual. The question here is not whether we like it or not. If I start a riot here about that being stupid and how I won't do it, only thing I can accomplish is to get myself fired. My job is to tell them that this does not make sense, and if the client still wants it despite all of the reason, then I have to do what they want. And hopefuly, after I make all the changes, the justice shall be restored to all of the universe.

    ReplyDelete
  5. Yeah, but how do you make the content bilingual? My point is that my individual controls speak both languages. The page doesn't know anything about it. Thus, i can't make a separate URL for each page (French and English) because there's only one page to speak of. There are only 2 text properties for each control, not 2 pages. Sure, i guess i could just make an exact copy of every single page and rename the copies a French name and then go and screw around with all of the links so that they uselessly point to the differeny URLs, but my point was that that's a huge waste of time, effort, and space. If they really want to be asses about it, then i'll just go change the names from things like "Login.aspx" to "2lkj23f3wfewfkl2j33f.aspx". How's that for bilingual?

    ReplyDelete
  6. Exactly. That's the whole point. That's essentially #2 of the "possible outcomes" in my post.
    Remember, if you have a form (or a link) that use GET, your url will be more like this:
    2lkj23f3wfewfkl2j33f.aspx?asf=34&kehr=tom+jones
    Yes, that will be much easier on the public rather than having to know english OR french...

    ReplyDelete
  7. If the requirements say the url has be bilingual, how does making the URL nonlinugal satisfy the requirement? Wouldn't all urls have to be readable in English and French? Wouldn't only have the URL in English (or french) be following the requirements more closely than using no language at all?
    Oh, and don't forget that ASPX is an English acronym. you'll have to reconfigure your servers to work with the French acronym for ASPX, and make sure all your pages are named appropriately.

    ReplyDelete
  8. They seem to have changed the anchor that I linked to... now fixed.
    Kibbee: to answer you question, no they wouldn't rather it be english or french rather than no language at all. I guess the wording in my original post was a little misleading. Check out "2. Page addresses" section c. You can use "language neutral" names.
    http://www.tbs-sct.gc.ca/clf2-nsi2/clfs-nnsi/clfs-nnsi-1-eng.asp#cn_2_pa
    As for extensions like html and aspx, I think that those escaped CLF 2. I'm not sure if the people writing knew that the extensions could be changed, or if they just didn't want to mess *too* much with things.

    ReplyDelete
  9. Looks like the URL you described is english-french, only using acronyms, instead of words. What i'm talking about, is would they think it better to use a page named:
    http://www.tbs-sct.gc.ca/lasdfasd/sdklwe/hdwods.aspx?dass=3384477&dso3=John+Doe
    or a page named
    http://www.tbs-sct.gc.ca/stuff/otherstuff/pagename.aspx?accountno=3384477&name=John+Doe
    Obviously the former is more readable, at least to english people, but people here are suggesting using the latter as way of getting around the guidelines.

    ReplyDelete
  10. No, that's not what "people here" are suggesting to get around the guidelines... That's what Treasury Board is suggesting in their standard! In fact they are not guidelines, but rules that actually have to be followed.
    Please re-read the page I linked to so you can understand what I am talking about.
    They say that you SHALL use a url like (if not fully bilingual):
    http://www.tbs-sct.gc.ca/100/aaa/10aa1/34de1-eng.htm
    vs
    http://www.tbs-sct.gc.ca/stuff/otherstuff/deleteUser.htm

    ReplyDelete
  11. After reading the specifications, i have some more comments. It seems you can either have 2 folders, one with the English name and one with the French name, or you can use folders with names that are in neither language. If the english word and the french word are the same, you only need 1 folder (it would be impossible to have 2 folders with the same name. It seems here that you still have to have File-fra.html and File-eng.html no matter which naming scheme you choose. This means that Scott is still out of luck, because his .Net controls only require 1 page, and they handle both languages. So he has to create 2 copies of each file, and you could possible link them up to the same codebehind page, so you wouldn't have to maintain 2 copies of each page. Anyway, it still appears that they aren't accounting for the way some technology works, in that you often don't need 2 pages to support the 2 official languages.

    ReplyDelete
  12. Bilingual URLs aside, I wonder how much of a trick it would be to create a CLF 2.0 WordPress theme? I know, perhaps a bit of a silly idea. The structure of WP itself might not lend itself to CLF, but it'd be an interesting exercise. If anyone out there has such a thing please let me know.

    ReplyDelete
  13. This bilingual url thing existed in the original CLF spec. It's just that most people didn't know, so it was ignored.
    The language in the new 2.0 spec is stronger, like Jim said, a lot of using the word "MUST". Suggesting , it is RULE, not a GUIDELINE. However is classic gov. vagueness the rule is concluded with this statement:
    It is acknowledged that the query language portion displayed in some URL paths that are dynamically generated could require significant programming effort to comply with this requirement. Where feasible, this portion of the URL must follow the naming options above.
    So, WTF does that mean? What is significant programming effort?
    Finally, Jobe, it would be very very easy to make a CLF2.0 WP theme. I think it would only take a few hrs. to get the basics done.

    ReplyDelete
  14. Thanks kevin!
    I thought that it was a new requirement. I didn't pay attention to the bottom of the requirement before... my bad. I guess that I could be getting all wound up for nothing.
    Jobe: I'll have to defer to kevin on the WP theme. I've never worked with it.

    ReplyDelete
  15. Thanks for the input.
    It looks like there might be an initiative to use Drupal as CMS solution (not wordpress).
    Looks like someone is planning to build a CLF 2.0 theme for Drupal. Check it out if you're interested. It sounds pretty exciting.
    http://drupal.org/node/60709
    http://gov20.info/node/18

    ReplyDelete
  16. Well, I just had to dig a little deeper..
    CLF 2.0 is built for Drupal
    http://drupal.org/node/75536
    Of course, probably not the final version.
    nice!
    Jobe Roberts

    ReplyDelete