• mathew (unregistered) in reply to Martin Plamondon
    Martin Plamondon:
    mathew:
    No, the REAL WTF is that the user's web browser already has a preference for what language they want to see the web site in, so the web server should just be using that.

    I hate when site does that! I'm French Canadian (Québécois, we too have multi-language countries in America) and I hated it the first time I went to Google with my English Windows but French Canadian preferences loaded like keyboard layout and Google redirected me to a French version of the page... Took me a while to make it remember I wanted English page.

    You hate it when your web browser delivers the web page you told it to deliver?

    Well, at least now you've learned the complex task of configuring your system to deliver the actual language you want, right?

    Sheesh. What next? "I went to Flickr and my web browser downloaded a load of images! Waah!"?

  • Jeff (unregistered) in reply to Guybrush
    Guybrush:
    In Germany they speak deutsch, shortened to "deu" in the table.

    I guess you don't recognize a joke when you see one.

  • Eirik (unregistered) in reply to mathew
    mathew:
    No, the REAL WTF is that the user's web browser already has a preference for what language they want to see the web site in, so the web server should just be using that.

    No no no, that is bad practice. Then the visitors can't choose in which language they want to see the site. You shouldn't make them have to fiddle around with the browser settings for every site on the internet.

  • Ken (unregistered)

    Actually, if you assume that the URL includes a valid 3-character code, why not just:

        return url[1]+url[2]+url[3]

    (Or whatever this language uses to concatenate 3 characters. Or maybe a MID() function?)

    The only difference here is that the original code will return

    string.Empty
    if the three characters don't match anything in the table.

  • Tom (unregistered) in reply to Jeff

    Is there something I'm missing here? It looks to me like the method takes a string, and in 99.999% of likely scenarios, returns the characters 1-3 of the same string. Unless the cost of returning a string that isn't a recognized locale is astronomical, you should just convert this to

    public static string IsoFromUrl (string url) { return url.SubString(1,3); }

  • PS (unregistered) in reply to Jens
    Jens:
    PS:
    Jens:
    PS:
    What is Europe? And why don't they speak English like the rest of us?

    Europe: The Swedish band, best known for "The Final Countdown". And yes, they do sing in English. ;)

    Ironic.. do do do do do do do do .....

    Btw. I'm European and don't even own a car... Not even a small one...

    So whay kind of bicycle do you own?

    trioBike, if you must know ;)

    I have a Hummer bicycle. It weighs 300 lbs, 48 gears, GPS, sound system, can carry 4 people, can crush a small car. A great bicycle but it's a real bastard up the hills.

  • GreenNight (unregistered) in reply to Martin Plamondon
    Martin Plamondon:
    mathew:
    No, the REAL WTF is that the user's web browser already has a preference for what language they want to see the web site in, so the web server should just be using that.
    I hate when site does that! I'm French Canadian (Québécois, we too have multi-language countries in America) and I hated it the first time I went to Google with my English Windows but French Canadian preferences loaded like keyboard layout and Google redirected me to a French version of the page... Took me a while to make it remember I wanted English page.
    Well, if you told your browser that you preferred french webpages obviously google will try to serve them in french first.

    It's worse with the msdn. It takes the config from the operating system and does not let you change the default. All I want is to see the help in english, I don't want to get used to read technical documentation in spannish.

    BTW, a more complete map of european languages is here: http://www.eurominority.org/version/maps/map-european-languages-eu.asp

  • Fred (unregistered) in reply to Pon

    Dutch, French and German are the official languages in Belgium. Arabic is the second most spoken language in Brussels after French.

  • (cs) in reply to Mario
    Mario:
    I speak Dutch (Flemish), btw.

    My condolences.

    Interesting fun fact: As a Dane, reading a Dutch newspaper is quite possible (easily 75% comprehension) but listening to Dutch ... 0% comprehension.

  • Anon (unregistered) in reply to PS
    PS:
    Jens:
    Btw. I'm European and don't even own a car... Not even a small one...
    So whay kind of bicycle do you own?
    I live in australia and dont own any kind of transport, cars are for hippies :P
    Orion Adrian:
    I'm gonna have to concur with the previous poster and say it feels like this is pretty optimal.
    I think you missed the huge bug in the code then... Even if its optimal (which it probably isn't), it doesn't work as-is due to the bug.
  • (cs)

    This is C# because it is the only language that uses string(with no capital letter), and also the style of comments used is unique only to C#.

    That code won't even work because, it only tests for the first 3 letters, for example, what happens if the user enters this url http://www.company.tld/engthisisawtf/products.

  • kbob (unregistered)

    I profiled a few ways of doing this in Ruby (yes, it's slow, but results in a happier programmer than C#). Tested with N=1000000, 20% miss rate (unless specified in the test). Results in seconds.

    Hash.key?                    1.160000
    Array.include?               3.180000
    wtf: char by char compare   28.250000
    wtf: char by char, all hits 28.980000

    So the Hash key test is the fastest, by far (at least in Ruby). So WTF is up with these guys? Note that this assumes that the random test URLs are evenly distributed across the languages, which may not be the case.

  • x.static (unregistered)

    An enum would have worked better, or use the built in globalization capabilities of .Net.

    captcha: dubya. sigh please don't remind me.

  • x.static (unregistered) in reply to Orion Adrian

    Orion, is that you? Dude, give me a shout!

  • Badger (unregistered)

    public static string IsoFromUrl (string url) { switch(url[1]) { case 'd': switch(url[2]) { case 'a':return "dan"; case 'e':return "deu"; case 'u':return "dut"; default:return String.Empty; } case 'e': return "eng"; case 'f': switch(url[2]) { case 'i':return "fin"; case 'r':return "fra"; default:return String.Empty; } case 'j': return "jpn"; case 'k': return "kor"; case 'n': return "nor"; case 's': switch(url[2]) { case 'p':return "spa"; case 'w':return "swe"; default:return String.Empty; } default:return String.Empty; } }

  • Badger (unregistered)
    public static string IsoFromUrl (string url)
    {
        switch(url[1])
        {
        case 'd':
            switch(url[2])
            {
            case 'a':return "dan";
            case 'e':return "deu";
            case 'u':return "dut";
            default:return String.Empty;
            }
        case 'e':
            return "eng";
        case 'f':
            switch(url[2])
            {
            case 'i':return "fin";
            case 'r':return "fra";
            default:return String.Empty;
            }
        case 'j':
            return "jpn";
        case 'k':
            return "kor";
        case 'n':
            return "nor";
        case 's':
            switch(url[2])
            {
            case 'p':return "spa";
            case 'w':return "swe";
            default:return String.Empty;
            }
        default:
            return String.Empty;
        }
    }
    
  • Anon (unregistered) in reply to Anon
    Anon:
    I think you missed the huge bug in the code then... Even if its optimal (which it probably isn't), it doesn't work as-is due to the bug.

    Ignore this post ^^^ what I thought was a bug was actually sound logic...

  • Michael (unregistered)

    I tested this code. I also tested several variations (rolling the loop back up, using an index instead of an iterator, compacting the strings into integers, etc.). NONE performed any faster than the posted code (well... sometimes using 'for' instead of 'foreach' was marginally faster). Some form of esoteric search algorithm might be faster, but for just a few lines of code, the posted solution is fantasic.

    This is most definitely NOT a WTF.

  • BillyBob (unregistered) in reply to Ken
    Ken:
    Actually, if you assume that the URL includes a valid 3-character code, why not just:
        return url[1]+url[2]+url[3]

    The only difference here is that the original code will return

    string.Empty
    if the three characters don't match anything in the table.

    :-/ If you also assume that the URL coming in has already been trimmed you can just do a "return url;"

    I actually like this because they put a comment as to why they did what they did in the code. I hardly ever see that in practice. Although it would have been better within the code block rather than outside it.

  • BillyBob (unregistered) in reply to THC
    THC:
    Wouldnt the best way be to actually parse the URL String _once_ into a URL class, with a int country and only pass that class around? ^^

    Meta solution? ;-)

  • (cs) in reply to mathew
    mathew:
    Martin Plamondon:
    mathew:
    No, the REAL WTF is that the user's web browser already has a preference for what language they want to see the web site in, so the web server should just be using that.

    I hate when site does that! I'm French Canadian (Québécois, we too have multi-language countries in America) and I hated it the first time I went to Google with my English Windows but French Canadian preferences loaded like keyboard layout and Google redirected me to a French version of the page... Took me a while to make it remember I wanted English page.

    You hate it when your web browser delivers the web page you told it to deliver?

    Well, at least now you've learned the complex task of configuring your system to deliver the actual language you want, right?

    Sheesh. What next? "I went to Flickr and my web browser downloaded a load of images! Waah!"?

    He told it to go to google.com, instead it went to google.fr (I assume, notice how he said it did a redirect) So no, he hates it when it delivers a page he didn't tell it to deliver.

  • woohoo (unregistered) in reply to Michael
    Michael:
    I tested this code. I also tested several variations (rolling the loop back up, using an index instead of an iterator, compacting the strings into integers, etc.). NONE performed any faster than the posted code (well... sometimes using 'for' instead of 'foreach' was marginally faster). Some form of esoteric search algorithm might be faster, but for just a few lines of code, the posted solution is fantasic.

    This is most definitely NOT a WTF.

    you missed the point, it most definitely is. not because the code is or is not optimal performance-wise, but because:

    1. it is more than suboptimal regarding extensibility and maintainance

    2. in any decent web-framework there is extensive support for i18n, without having to roll your own half-baked solution (mind, it is not even shown how the extracted iso language string is used inside the pages - the next WTF might be just lurking there. I strongly fear something like a switch-statement for every localized string inside of HTML-embedded code snippets or some similarily nightmarish thing...) if the framework of choice does not support i18n, throw away the framework and use a better one instead of re-inventing the (most probably not quite so round...) wheel. that's what frameworks and standardized platforms where invented for.

    captcha: onomatopoeia - finally I got that famous one ;o)

  • Florian (unregistered) in reply to chrismcb
    chrismcb:
    mathew:
    You hate it when your web browser delivers the web page you told it to deliver?

    Well, at least now you've learned the complex task of configuring your system to deliver the actual language you want, right?

    Sheesh. What next? "I went to Flickr and my web browser downloaded a load of images! Waah!"?

    He told it to go to google.com, instead it went to google.fr (I assume, notice how he said it did a redirect) So no, he hates it when it delivers a page he didn't tell it to deliver.

    Well, google choses the language not according to the settings of your browser, but to the country you're in. So my browser does say that I want english, and french if that's not available, but until I go to google's preferences, and save a magic cookie, it comes in japanese. I hate that when web sites assumes that countries = languages, and that everybody in a country is a local. At least, with japanese I can handle it. But it was certainly a nuisance last time when I was in thailand. And of course, it is very famous that nobody ever ever goes on holidays in thailand. They probably just build the biggest airport in asia just to show off.

  • (cs)

    the best fix to this is:

    public static string IsoFromUrl (string url){
       string tmp = url.Substring(1,3);
       if (url[4] != '/')
          return string.Empty;
       foreach (string str in VALID_FOLDERS)
          if (tmp == str)
             return str;
       return string.Empty;
    }

    if speed is needed, there's two methods that can be used, with a hash table or with binary search. The binary search would be as follows

    // sorted array
    public static string[] VALID_FOLDERS = new string[]{
        "dan", // Danish
        "deu", // German
        "dut", // Dutch
        "eng", // English
        "fin", // Finnish
        "fra", // French
        "jpn", // Japanese
        "kor", // Korean
        "nor", // Norwegian
        "spa", // Spanish
        "swe"  // Swedish
    };
    
    public static string IsoFromUrl (string url){
       int index = Array.BinarySearch(VALID_FOLDERS, url.Substring(1,3));
    
       if ((url[4] != '/') || (index < 0))
          return string.Empty;
       return VALID_FOLDERS[index];
    }
  • sambeau (unregistered) in reply to Tom

    What this is is a 'trie'.

    I once benchmarked tries versus hashes versus linear search for tiny dictionaries (less than 20 name-value pairs). Despite expecting a linear search to be fastest on such small datasets the trie came out tops by a long shot. That was with the each string compare dropping out as soon as it found one character wrong (normally the first). However, the linear search was almost certainly fast-enough.

    A bunch of IFs is often faster than a case statement too, especially as small case statements often end up as if statements anyway. Take a look at re2c to see this working in practice.

    Most modern CGI's do so much in each request anyway that this type of optimisation is generally redundant. I'm sure this CGI in question went on to make call after call to an SQL database..

  • sambeau (unregistered) in reply to Badger
    Badger:
    public static string IsoFromUrl (string url)
    {
        switch(url[1])
        {
        case 'd':
            switch(url[2])
            {
            case 'a':return "dan";
            case 'e':return "deu";
            case 'u':return "dut";
            default:return String.Empty;
            }
        case 'e':
            return "eng";
        case 'f':
            switch(url[2])
            {
            case 'i':return "fin";
            case 'r':return "fra";
            default:return String.Empty;
            }
        case 'j':
            return "jpn";
        case 'k':
            return "kor";
        case 'n':
            return "nor";
        case 's':
            switch(url[2])
            {
            case 'p':return "spa";
            case 'w':return "swe";
            default:return String.Empty;
            }
        default:
            return String.Empty;
        }
    }
    

    That's the fastest almost certainly..

  • (cs) in reply to nooblar

    [quote user="nooblar"][quote user="mbvlist"][quote user="joerbanno"][quote user="Guybrush"]In and in Switzerland they speak German, Italian or some other language I forgot, and so on.[/quote]

    In Switzerland they speak:

    German (64%) in the north and centre; French (20.4%) to the west; Italian (6.5%) [/quote]

    and: (source: eurominority.org)

    • Grishun (language is Romansh)
    • Yenishes (language is Yenish)

    That should it as regards to Switzerland.

    Addendum (2007-02-08 11:47): That should be it as regards to Switzerland.

    Sigh - sorry.

  • (cs) in reply to rien
    rien:
    Guybrush:
    In Germany they speak deutsch, shortened to "deu" in the table.

    you mean, in deutschland ? they speak german of course ! and when not speaking, they are driving big fast cars...

    Derrick Pallas:
    Apparently, they all speak different languages too.

    worst, they may speak different languages within the SAME country !

    So what is the big deal with that: are you thinking that in the US only english is spoken ?

    FYI: Languages spoken in the US I can think of right away:

    • French spoken by the Cajun (minority ?) in Louisiana
    • Spanish spoken in Puerto Rico (and the rest of the country now, too)
    • The various languages spoken by the native americans (remember the Navajo Codetalkers in WWII).
    • German/Amish spoken by the Amish in Pennsylvania

    If I did forget anything, no offense intended - this is just a shot from the hip.

  • (cs) in reply to savar
    This is the greatest comparison of Europe to America in 50 words or less that I have ever read. Actually, it's brilliant. Should I reference "CodeSOD" whenver I quote this excerpt?

    You should reference "Sir Derrick Lyndon Pallas" and (if possible) link to http://derrick.pallas.us

  • (unregistered) in reply to cklam

    And Chinese in Cupertino...

  • TomFan_dk (unregistered) in reply to Rabbi
    Rabbi:
    PS:
    What is Europe? And why don't they speak English like the rest of us?

    Europe is the little place on the far side of the pond where most of your ancestors came from (not counting the few native Americans that were allowed to survive and interbreed). It includes an insignificant island called England - the place English comes from

    As for English, we don' speak it like the rest of you because we speak it as it should be spoken!

    I'm italian, living in Denmark but..... I call two thumbs up on this! ;-)

  • el (unregistered) in reply to Rabbi
    Rabbi:
    As for English, we don' speak it like the rest of you because we speak it as it should be spoken!

    Yeah, if only

  • (cs)

    Surely there's a C# equivelant for this PHP code:

    <?php
    $languages = array(
    	'eng', // English
    	'deu', // German
    	'fra', // French
    	'jpn', // Japanese
    	'kor', // Korean
    	'dan', // Danish
    	'fin', // Finnish
    	'swe', // Swedish
    	'nor', // Norwegian
    	'dut', // Dutch
    	'spa'  // Spanish
    );
    
    function IsoFromURL($url)
    {
    	$iso = substr($url, 1, 3);
    	// Does this language exist?
    	if (in_array($iso, $languages))
    		return $iso;
    	// No? Default to English
    	else
    		return 'eng';
    }
    ?>
    

    This checks for the language in the array. If it doesn't exist, it defaults to English :)

  • noox (unregistered)

    "deu" is the three letter iso language code (ISO 639-3) of german. "de" is the two letter code.

    In the ISO country code "DEU" stands for German and "CHE" for Switzerland. But we are more used to the IOC country codes which are used for sports activities. There it's "GER" and "SUI" for instance.

  • (cs) in reply to Gordon
    Gordon:
    Europe: The Swedish band, best known for "The Final Countdown". And yes, they do sing in English. ;)

    'Europe' Swedish? You mean Finnish

    Please don't try to pin on the finnish something we are not responsible for.

  • European (unregistered) in reply to PS

    What is Europe? And why don't they speak English like the rest of us?

    English is a european language.

    Try expressing yourself again in native american.

  • Peter (unregistered) in reply to Rabbi
    Rabbi:
    PS:
    What is Europe? And why don't they speak English like the rest of us?

    It includes an insignificant island called England - the place English comes from

    Actually the Island is called Britain. England is one of the three countries on that Island.

  • Matthew Watson (unregistered) in reply to mathew

    The biggest WTF here is that people say they can write faster code, but don't actually instrument it!

    I tested two of the supposedly "faster" proposals made here, and they are both slower.

    In the code below, Test0() is the original code, Test1() is the code that uses Array.BinarySearch(), and Test2() is the code that uses a single prefix character to speed lookup.

    On my system (Pentium 4, 2.8GB) the results are:

    Test0() took 102ms, Test1() took 1112ms, Test2() took 162 ms.

    Most amusingly, the Array.BinarySearch() proposals is over 10 TIMES slower that the original code. :)

    The moral of this? INSTRUMENT YOUR CODE BEFORE MAKING WILD CLAIMS ABOUT IT'S SPEED!

    Here's the code. Sorry about the bad layout.

    static void Main()
    {
        Test0();
        Test1();
        Test2();
    }
    
    public static void Test0()
    {
        Stopwatch stopwatch = new Stopwatch();
    
        stopwatch.Start();
    
        for (int i = 0; i < 100000; ++i)
            foreach (string url in TEST_URLS)
                IsoFromUrl0(url);
    
        stopwatch.Stop();
    
        MessageBox.Show( "Test0() took " + stopwatch.ElapsedMilliseconds + "ms");
    }
    
    public static void Test1()
    {
        Stopwatch stopwatch = new Stopwatch();
    
        stopwatch.Start();
    
        for (int i = 0; i < 100000; ++i)
            foreach (string url in TEST_URLS)
                IsoFromUrl1(url);
    
        stopwatch.Stop();
    
        MessageBox.Show("Test1() took " + stopwatch.ElapsedMilliseconds + "ms");
    }
    
    public static void Test2()
    {
        Stopwatch stopwatch = new Stopwatch();
    
        stopwatch.Start();
    
        for (int i = 0; i < 100000; ++i)
            foreach (string url in TEST_URLS1)
                IsoFromUrl2(url);
    
        stopwatch.Stop();
    
        MessageBox.Show("Test2() took " + stopwatch.ElapsedMilliseconds + "ms");
    }
    
    public static string[] TEST_URLS = new string[]
    {
        "/dan/test/url",
        "/deu/test/url",
        "/dut/test/url",
        "/eng/test/url",
        "/fin/test/url",
        "/fra/test/url",
        "/jpn/test/url",
        "/kor/test/url",
        "/nor/test/url",
        "/spa/test/url",
        "/swe/test/url",
        "/xyz/test/url"
    };
    
    public static string[] TEST_URLS1 = new string[]
    {
        "/ddan/test/url",
        "/gdeu/test/url",
        "/hdut/test/url",
        "/eeng/test/url",
        "/ufin/test/url",
        "/ffra/test/url",
        "/jjpn/test/url",
        "/kkor/test/url",
        "/nnor/test/url",
        "/sspa/test/url",
        "/vswe/test/url",
        "/xxyz/test/url"
    };
    
    public static string[] VALID_FOLDERS = new string[]
    {
        "dan", // Danish
        "deu", // German
        "dut", // Dutch
        "eng", // English
        "fin", // Finnish
        "fra", // French
        "jpn", // Japanese
        "kor", // Korean
        "nor", // Norwegian
        "spa", // Spanish
        "swe"  // Swedish
    };
    
    public static string[] VALID_FOLDERS1 = new string[]
    {
        "eeng", // English
        "gdeu", // German
        "ffra", // French
        "jjpn", // Japanese
        "kkor", // Korean
        "ddan", // Danish
        "ufin", // Finnish (Ugric)
        "vswe", // Swedish (Svensk)
        "nnor", // Norwegian
        "hdut", // Dutch (Hollander)
        "sspa"  // Spanish
    };
    
    public static string IsoFromUrl0(string url)
    {
        foreach (string str in VALID_FOLDERS)
        {
            if (str[0] == url[1])
            {
                if (str[1] == url[2])
                {
                    if (str[2] == url[3])
                    {
                        return str;
                    }
                }
            }
        }
    
        return string.Empty;
    }
    
    public static string IsoFromUrl1(string url)
    {
    
        int index = Array.BinarySearch(VALID_FOLDERS, url.Substring(1, 3));
    
        if ((url[4] != '/') || (index < 0))
    
            return string.Empty;
    
        return VALID_FOLDERS[index];
    }
    
    public static string IsoFromUrl2(string url)
    {
        foreach (string str in VALID_FOLDERS1)
        {
            if (str[0] == url[1])
            {
                return str.Substring(1, 3);
            }
        }
    
        return string.Empty;
    }
    
  • (cs)

    You're all missing the point: Because of the greater disparity of end letters as compared to starting letters ( 2 'f' and 3 'd' ), to optimise this code you should surely reverse the order of testing, so as to minimise the number of 'if' clauses performed, thus: ( I can't get the formatting to work, apologies )

    foreach (string str in VALID_FOLDERS) { if (str[2] == url[2]) { if (str[1] == url[1]) { if (str[0] == url[0]) { return str; } } } } There. That's better...

  • (cs) in reply to turbothy
    turbothy:
    Mario:
    I speak Dutch (Flemish), btw.

    My condolences.

    Interesting fun fact: As a Dane, reading a Dutch newspaper is quite possible (easily 75% comprehension) but listening to Dutch ... 0% comprehension.

    As for the condolences, I'm sure he'll be fine.

    As for Danes understanding Dutch, I can assure you that this is also true the other way round. Danish is about as inconsistent in its pronunciation as English is.

    About the original post: the expression "as optimal as possible" is butt ugly, if not simply wrong.

  • Vincent (unregistered)

    An even bigger wtf is you cleary underestimate the netherlands and europe in common, which, for one, found your 'great' America (New York used to be New Amsterdam).

    Our small cars have a lot more comfort and luxurious on the inside then American cars, even in cheaper cars ;). And about speaking alien when there are no forgeiners around.. so true ;)!

  • Sean Ellis (unregistered)

    I've just read through all the comments, and I don't see anyone pointing out that, since the url is of the form "/lang/foo/bar.aspx", the three characters being compared from the url (url[1], url[2] and url[3]) are not the country code at all, but are always "lan".

    Therefore it will always return an empty string, IF it's called as per the description. In any case, it's a WTF.

  • (cs) in reply to Guybrush
    Guybrush:
    In Germany they speak deutsch, shortened to "deu" in the table.

    My guess is that Jannik works at a German company? ;) (<generalisation>chauvinistic bunch</generalisation>)

  • StoB (unregistered)

    Why is it

    /// <param name="Url" />URL of the form "/lang/foo/bar.aspx"
    instead of
    /// <param name="Url">URL of the form "/lang/foo/bar.aspx"</param>
    ?

  • Matthew Watson (unregistered) in reply to Sean Ellis
    Sean Ellis:
    I've just read through all the comments, and I don't see anyone pointing out that, since the url is of the form "/lang/foo/bar.aspx", the three characters being compared from the url (url[1], url[2] and url[3]) are not the country code at all, but are always "lan".

    Therefore it will always return an empty string, IF it's called as per the description. In any case, it's a WTF.

    I where they said "lang" in that URL, they meant the 3 character language code. They should have put <lang> in the URL, and then said "where <lang> is a 3 letter language code blah blah".

  • (cs) in reply to mathew
    mathew:
    Martin Plamondon:
    mathew:
    No, the REAL WTF is that the user's web browser already has a preference for what language they want to see the web site in, so the web server should just be using that.

    I hate when site does that! I'm French Canadian (Québécois, we too have multi-language countries in America) and I hated it the first time I went to Google with my English Windows but French Canadian preferences loaded like keyboard layout and Google redirected me to a French version of the page... Took me a while to make it remember I wanted English page.

    You hate it when your web browser delivers the web page you told it to deliver?

    I doubt that the French version of Google was the page that Martin was looking for. He wanted the English version.

    Try reading the post for a change.

  • DOA (unregistered) in reply to cklam

    Oh, man,I nearly had an aneurism from laughing at that. That's probably what their elementary school maps look like...

  • Klogg (unregistered) in reply to Rabbi
    Rabbi:
    Europe is the little place on the far side of the pond where most of your ancestors came from (not counting the few native Americans that were allowed to survive and interbreed). It includes an insignificant island called England - the place English comes from

    The island is called England? My, those Scottish and Welsh people would love to hear you call it that...

  • (cs) in reply to Okayyy, hes in school ffs.
    Okayyy:
    Bah. Europa. I prefer scandinavia. ;) Btw, there is a very small and odd language apart from nederlands. ;) dunno what its called in english though. Flamländska in swedish. Cool language.

    Flemish.

  • Rex (unregistered) in reply to Whiskey Tango Foxtrot? Over.

    Said the Dutch prostitute with a nasty chest cough to the customer wanting to loosen up while waiting for her to finish with the Frenchman.

Leave a comment on “Laying the Foundation for i18n, Brick by Brick”

Log In or post as a guest

Replying to comment #:

« Return to Article