The Global Village

One of the things that went surprisingly well from even the earliest beginnings of EyeFetch was the global footprint we could establish. It was always my hope that we would see people from around the world participate – you could see this plan from the start by having the little country flags showing very prominently – but the breadth and depth of our global reach echoes even now, with comments from all over the world still showing up.

Needless to say, this is one of the areas of the old EyeFetch I not only want to retain, but ideally would like to build out further. The original EyeFetch was built on classic ASP, which didn’t really have any decent support for localization and globalization. While many pieces of the platform migrated over the years onto the newer .Net platform, merging localization in was something I never got to, and eventually turned out to be too much work. So, one of the many advantages of starting from scratch, is that full globalization can be built in right from the start.

Technical Details – Building a Custom Database Resource Provider in .Net (4.0)

The goals here were pretty simple:

  • Move the resource storage from .resx files into a database, so dynamic updates can be made, and a web-based admin interface to edit localization can be built in the future
  • Allow users to select their preferred language through a simple UI (for now, just a drop-down to test)

Luckily with the introduction of the provider model in .Net 2.0 this should have been pretty simple. Additionally, I assumed a lot of other folks would have attempted this before, and plenty of (clear) documentation should be available. To my surprise, I spent the last two days struggling with this, and only thanks to a couple of very insightful articles could finally put this all in place. I suspect a number of other folks will run into similar problems, so here are the key resources that sent me down the right path:

While the articles above should give anybody interested a good enough view to be able to build their own Custom Resource Provider, there is a single piece of information I wish I could have understood earlier, and judging from a few articles I found during my research I’m not the only one who has run into this challenge. If you ever get to the point during implementation of your own Custom Resource Provider at which the compiler either throws out odd compilation errors (or, as in my case, even crashes Visual Studio 2010 completely), remember this:

  • Even explicit global localization will cause the compiler to check for existence of the neutral language for the resource key you are referencing!

Read the statement again, and let it sink in. Basically, this means you need to make sure you have the entire resource provider set up, registered in the web.config and enough data in your database to support every key you are referencing throughout your code. Furthermore, if you end up running into problems in the design-time piece of your custom resource provider, add a break point in the override for CreateGlobalResourceProvider, then open a separate instance of Visual Studio, and attach yourself to the devenv.exe process. Then compile the default project which references your custom resource provider classes in the original instance of Visual Studio, and the break point will be reached during compilation, as the compiler reaches the pages that utilize a global resource.

Say what?

For the non-techies following along, this is what this all means to you: Go to eyefetch.com, and click the little “login” link on the top right. Note, logins do not work yet. The login page is a placeholder for now so I can lay the foundation of the various platform features I want to enable in the new EyeFetch. In the header, you will notice a sentence, stating “EyeFetch login -….”, and on the right top you can see a drop-down with a few language choices (for now, the choices are only in English). Change the drop-down, and you will see the sentence in the header change language. Hooray! What does this mean for EyeFetch? It means I will implement this base functionality throughout the Site, and then we will simply need to store translations of every piece of text we have on the Site (maybe with the help from some of you) and we will be able to offer EyeFetch in other languages and make our little corner of the Internet even more accessible to all four corners of the world.

10 thoughts on “The Global Village

  1. Wow. As you can see by the replies to the posts you have put up, we are all so grateful you have taken the reins of Eyefetch back, and are taking so much time to re-build what was the first image-hosting site I ever found on the internet. Because of that, it will always hold a special place in my bookmarks. For those that view photography, imaging and grahic art as a passion, you hold the key to our obsession, and we are impatiently being patient, waiting for the time when we can all retun home. I can only begin to imagine the time you are devoting, and look forward to the posts of progress. Thank you for all that you are doing.

    Susan (Krosscourt)

  2. I now understand why kids say, “Are we there yet?”.
    Hang in there, keep the coffee brewing, and before you know it, you will have it up and running.
    Of course once it’s up and running the real fun starts…. shake down. 😉

  3. One of the strogest features of EF was the capability of seeing “friends” new photos without having to sort through a bunch of trash photos. The weakest was the way that Groups were formed with tremendous overlap. You should organize be galeries. If I post and architectural photo it should be seen in both my galery, architectural galery, and most recent. Contest should relate to the subject gallery.

  4. Had a sneak peak Paradigm, looks like things are starting to come together my friend, I wish you good luck and appreciate all the hard work you are doing in creating the new Eyefetch, I know it will have been worth the wait, good on you.

  5. Thank you for all the work you are doing to make a better site for us to return. I know we are all impatient for the return and we will be grateful when the new and improved site returns.
    It is like a long vacation and wanting to come home to be with friends.
    Know that this is , to me, the best site for photography for all levels of photographers.
    We wish you well in your completion of this monumental task and your reward will come when all the ‘happy campers’ return.
    Barbara Kennedy

  6. Thank you for all the work and hope that we are near the end of reinvention – anxious for the site to return….

  7. Among several other reasons I stopped using Eyfetch because I felt I had no ability to delete my contest and awarded images from the site after I found they were being reposted elsewhere. If I have total control of my images, including an ability to make them private in the new Eyfetch then I will likely renew my subscription.
    It is good to see the site being reinvented, I’ll keep an eye on its development. Good luck with it Paradigm

Leave a comment