Robert Laing is the founder of myGengo, a 500 Startups company that helps businesses all over the world go global with convenient, affordable and high quality human translation service that scales.

Let’s delve into the topic of website localization to learn exactly what every company needs before going global. But first, to define localization: the translation and adaptation of content for foreign markets. Simple enough, right?

Now, take a close look at five important points to remember when it comes to website localization. 


1. A Picture is Worth a Thousand Words


Let’s assume that the images on your company website are already geared towards your intended audience. When going global, it’s best to rely on images that are culturally appropriate and sensitive. Do this well and you’ll boost your company’s ability to connect with those visiting the site, not to mention, foster a healthy relationship with potential customers.

Let’s take a look at an example of good website localization. In the screenshot above, notice how Zynga Japan, the company behind Farmville and Cityville, incorporates the Japanese flag into its homepage banner. Clearly, the image is appropriate for a website intended for a Japanese audience.

Don’t forget that the way one audience perceives a particular image can differ greatly from another reacts. And then there’s the fact that what’s acceptable for one target market can take on an entirely different meaning for another. For example, a thumbs-up gesture in one culture is a positive affirmation, whereas in another, it could mean, “Up yours, pal!

Keep these things in mind when localizing the company site and you’ll be one step closer to connecting with your target market. Here are some other things to consider.

  • Attention to Detail: Mistaking the Italian and Mexican flags, for example, is bad news.
  • Cultural Sensitivity: People have strong feelings about things like colors, symbols and metaphors. Does the color white symbolize purity or death for your intended audience?
  • Risk Assessment: Aim to avoid any unintended consequences that could be embarrassing or potentially hazardous to your company.

The bottom line: When building trust and earning customer loyalty is the objective, images can make all the difference in the world.


2. Adapt and Adjust


Make no mistake, a one-size-fits-all approach doesn’t work with website localization. People do things differently around the world; therefore, companies going global must adapt and adjust to succeed. Let’s compare the English and Japanese websites of Rakuten, the company behind the largest online shopping mall in Japan, to explain this further.

Notice that the Rakuten USA website (above) is simple and clean when compared to the Rakuten Japan website (below). Of course, know that Japanese websites can oftentimes appear overly busy to the non-native eye.

In a blog post titled The Puzzle of Japanese Design, Sean Hussey, former employee of Rakuten USA, offers his perspective about the Japanese company: “We tried to develop our products with clean designs and interfaces, which came in direct contrast with the home company’s approach. It was understood as a cultural difference…Japanese sites are full of text, images, animations, clashing colors and scroll-scroll-scrolling layout choices.”

The bottom line: The style and design of a well-localized site means staying consistent with local norms so it looks and feels familiar and usable to your audience.


3. One Language, Two, or a Combination of Both?


Question: If a major component of the localization process is content translation, then why do some companies purposely exclude the translation of certain keywords, tabs, menus, taglines and slogans when localizing their website?

The short answer is that no one ever said website translation had to be an all-or-nothing process. In fact, in some cases it can be beneficial for a company website to blur the language lines rather than opt to translate the whole thing from start to finish. If you want to see this in action then check out the Japanese myGengo site.

Now let’s take a look at one example: Airbnb‘s website is used by people around the globe looking for local accommodations away from home. Specifically, Airbnb provides a platform for its users to rent from “real people in 19,732 cities in 192 countries.” The tagline appears on the company website, where I’d now like to draw your attention. 

In these two screenshots, notice the tagline used for the Chinese version is in English (not Chinese), yet the Italian version of the website has been remained in its local language. Why one and not the other? Also, check out the photograph of the happy friends at the top of the page. In both examples, the words below the image are in English, and haven’t been translated into Chinese or Italian. This is because localization isn’t always a science — it’s an art too.

Here are some points to keep in mind when tackling the language component of your website localization.

  • Language Lengths: Some languages appear longer when written or typed. Do the words “Invite Your Friends” fit as nicely in Italian as they do in English?
  • Emphasis: Foreign languages are cool. If you want to make your page pop, using a non-native language might be your secret weapon. Just be careful with translation!
  • International Appeal: Localization is all about going global. Translating some (not all) of the content on your site into another language might be an excellent way to strengthen your international appeal.

The bottom line: When done in moderation, there’s absolutely nothing wrong with mixing languages on a localized website.


4. To Translate or Not to Translate, That Is the Question


A company’s slogan/tagline can be one of its most important branding assets. When a memorable phrase follows a company’s name, people are more inclined to remember it. That said, making a brand stick in the hearts and minds of potential customers is by no means an easy feat. This is especially true when crossing borders and languages.

What is the most effective way for a company to keep its brand identity strong as it expands into new markets around the world? It all depends. Here are a few points worth mentioning.

  • Brand Identity: Consistency plays an important role in maintaining a company’s image.
  • Nuances: Culture systems, belief systems and worldviews shape the way we think about the words we use.
  • Target Audience: Know your audience. What may be considered funny in one language may be insulting in another.

Let’s take two examples.

A. Wikipedia, The Translation Path

Wikipedia, a company with a clear and precise mission (to be the free encyclopedia of the world), has a tagline to echo its vision. In the screenshot to the left, you’ll see the same tagline translated into each of Wikipedia’s languages.

In this case, when translating the phrase “the free encyclopedia,” there isn’t too much room for a mistranslation (don’t hold me to that). If you believe the same holds true for your company’s tagline/slogan, then perhaps opting for the translation might be a great idea.

B. Facebook, The Non-Translation Path: Everyone knows Facebook has completely changed the way people communicate with the world, but how does Facebook communicate with its users? Let’s compare the English with the Japanese version of the Facebook homepage to see what stands out.

The English page says, “Facebook helps you connect and share with the people in your life.” The Japanese page says, “Using Facebook, you can connect with friends, colleagues and classmates to deepen your connections. Also access Facebook from cell phones and smartphones.”
 
Notice that the Japanese page mentions users can access the site with phones, but the English page doesn’t. That’s probably because 95% of the Japanese population are mobile subscribers. The same study explains that Japan uses the mobile Internet more than any other country in the world. It appears Facebook crafted its Japanese homepage with this point in mind. So, what can we learn here? If you want to maximize your outreach potential, you’d better know your target market inside and out.

The bottom line: Having a carefully localized slogan/tagline for your company can be an effective way to foster relationships with potential customers in new markets.


5. Down to the Last Detail


A successfully localized website is one that appears to have been developed locally, even when it wasn’t. Since localization mistakes and oversights can be awkward for website users and potentially embarrassing for the company, make sure to get it right — it’s absolutely worth the time and effort. The last thing any company wants is to turn away potential customers from its website before those visitors ever have a chance to experience the product or service. Generally speaking, website localization means giving some extra attention to things like:

  • Dates: Month, day, year vs. day, month, year.
  • Time: 12-hour vs. 24-hour time.
  • Color: Avoid local color sensitivities.
  • Currency: Pay attention to conversions and formats.
  • Phone Numbers: Formats are different around the world.
  • National Holidays: Holidays are country and region specific.
  • Geographic Examples: Keep it relevant for your audience.
  • Website Language CodesISO codes are important to know.

Let’s take a look at the two images above. The first image was taken from Apple’s U.S. website, and the second from the UK website. Can you spot the differences between the two? Here’s what I came up with.

  • Date: U.S.: May 19, 2012 vs UK: 19-May-2012.
  • Time: U.S.: 9:41 a.m, vs. UK: 09:41.
  • Color: Look closely at the colors behind the girl.
  • Bonus: What’s going on behind the girl’s shoulder in the UK version of the photo. Is that a tail?

The bottom line: When the aim is to make it look like you’ve developed the website in your target market, the details are incredibly important.


Final Thoughts


And there you have it: what every company needs to know when localizing its website. With the help of the Internet, expanding into new markets continues to become easier than ever before. Of course, going global, and doing it with style, requires a strategic game plan, a comprehensive vision. Good luck, and we’ll see you out there soon!

Image courtesy of iStockphoto, tumpikuja

More About: contributor, design, features, international, web design, web-2.0

For more Dev & Design coverage:





Martin Odersky is Chairman and Chief Architect of Typesafe and creator of the open source Scala programming language. This post was co-authored by Chris Conrad, an engineering manager who is part of the Search, Network and Analytics team at LinkedIn.

While interacting with social media and other consumer websites has become routine for many of us, ensuring a seamless, positive user experience is still the Holy Grail for web developers. The volume of queries and messaging on websites increases every day, as does the challenge of keeping the underlying infrastructure running smoothly for millions of users.

Below, we’ll highlight key challenges facing web developers of high volume sites, provide examples of how to address these hurdles, and discuss the role of emerging open source platforms as a modern approach to overcoming them.


Three Key Challenges


  • Performance: While web application developers of high volume sites face many challenges, performance tops the list. With consumers now demanding blazing computing speeds and uninterrupted service, a wait time of 250 milliseconds can mean the difference between a successful service and a failed one. For key user operations, such as interactive, real-time slicing and dicing of large data sets, performance is essential. The application needs to perform flawlessly and logically in order to attract and keep consumers.
  • Efficiency: When operating services on a massive scale, it’s essential to make the most efficient use of hardware assets. For example, optimize the use of memory and available processing resources. In practice, this often means using event-driven and distributed architectures like node.js, versus previous generation thread-based models like traditional Java Servlets. Developer productivity programming languages are further facets of efficiency. Fewer lines of code, made possible by concise languages like Scala and Ruby, generally translates to higher productivity for application developers.
  • Reliability: Systems need to remain resilient against component failures, including hardware, software and network crashes. An ever-expanding ecosystem of applications depends on reliable access to user-generated content, like LinkedIn’s, for instance. As such, the network needs to target “five nines” availability goals that have previously been benchmarks for the telecommunications and electrical power industries.

  • Real-World Applications


    LinkedIn faces these challenges every day and is always looking to incorporate the most advanced technology to keep its services running smoothly, reliably and efficiently. For example, to support the Signal product introduced last year, LinkedIn created a high performance web service written in Scala. This service is accessed through a REST/JSON-RPC model that enables quick ad hoc data manipulation and fast iteration from the web-based user interface.

    For its real-time people search service (with a peak demand exceeding the hundreds of queries per second), LinkedIn uses a scatter-gather approach that distributes search queries in parallel across a large server farm. This approach balances quick response time with efficient use of server resources.

    To support reliability, LinkedIn created a cluster management and workload distribution library called Norbert, which it implemented in the open source Scala programming language. It then incorporated open source technologies from the Apache ZooKeeper, Netty and Protocol Buffers projects. Norbert is a key component of several mission-critical applications at LinkedIn, most notably its social graph engine, which fields a high volume of requests per day.


    Open Source – Solving Today’s Modern Programming Challenges


    In the last few years, many new open source technologies have emerged to help web application developers. Open source projects such as Norbert, now available under the open source Apache license at sna-projects.com, are readily available to web developers charged with tackling such challenges.

    Open source programming languages and frameworks that enable parallel and distributed computing can be especially helpful in keeping today’s most trafficked websites running steadily and smoothly. Below are key considerations to keep in mind when programming for today’s multicore paradigm:

    • For applications that benefit from highly interactive user experiences, like LinkedIn Signal, developers should consider breaking data-intensive functionality into asynchronous web services that can be integrated into the web-based user interface using REST-style APIs.
    • To encourage “efficiency by default” for today’s web-scale applications, developers should look to modern frameworks like Akka and Norbert that incorporate capabilities like event-driven processing, asynchronous I/O and cluster-aware fault tolerance.
    • For applications that can truly scale up and scale out, developers should favor languages like Scala that provide first class support for functional programming, which discourages the use of mutable state. This allows applications to more easily scale hundreds of cores on a single server, and thousands of servers on a network.

    In summary, web applications and their supporting infrastructure need to be robust and efficient as more of society shifts its everyday interactions online. Fundamental advances in technology, many driven by the open source community, are making it possible for today’s web application developers to stay ahead of the scalable computing needs of consumers.

    Image courtesy of Flickr, Fon-tina

    More About: apps, linkedin, programming, Web Development

    For more Dev & Design coverage:




The Web Development Series is supported by Rackspace, the better way to do hosting. Learn more about Rackspace’s hosting solutions here.

Taking on a large project can be both exciting and intimidating, particularly if you’re a solo developer. Big builds can be a lot of fun and serve as great learning experiences. At the same time, you have to keep the project moving forward, or risk missed deadlines and burnout.

Below are some tips to help you stay organized and productive, whether you’re working individually or as a team.


1. Make Your Contract Rock-Solid


When dealing with clients, issues like scope creep, late payments and deadlines are always a concern. And what may seem obvious to you may not be clear to your client. To avoid hurt feelings, delays and financial troubles, your first priority should be establishing a thorough, firm, but fair written contract.

A good contract protects both you and your client. In addition to general terms and conditions, your contract should contain specifics about the project: payment schedules, due dates, deadlines (and consequences for missing those deadlines), cancellation policies, guidelines regarding intellectual property and project scope. You can find many sample contracts on the web, but there’s no substitute for consulting with an attorney. When dealing with the safety of your business and your livelihood, the expense is justifiable, and should be calculated in your business overhead.


2. Have a Well-defined Road Map


One of the required supplements to your contract should always be a project road map. It should outline all of the project features as thoroughly as possible, and establish the general plan for project progression, from research all the way through deployment.

To start, write out all of the features in outline format. It helps to break them down into groups, such as “Account Administration Features” and “Inventory Control Features,” for example. Keep refining the outline until you’ve defined exactly what is expected and what needs to be developed.

Next, break the project down into different phases, such as research, design, development, testing and deployment. For each phase, state its goals clearly, and define where the project should be when the phase is completed. Have your client sign off on the phases, and include this document with your contract. You may want to make a second copy of this road map to include more technical details, such as technologies to employ and methods to implement each feature — but don’t change the scope unless your client signs off on the changes.


3. Establish a Style Guide


Whether you’re working alone or with a team, taking the time to establish a style guide for your project will help you maintain consistency throughout. Furthermore, when the project needs updating six months from now, you’ll be glad you made the effort.

There are two types of style guides you should consider: a visual guide and a coding guide. Keep in mind that either or both may apply to the project. The visual style guide should contain information regarding fonts, colors, branding and any other notes on visual appearance. You should also include a few examples of common elements, such as headers, forms, body content, sidebars and menus. While you may never need to go into such detail, the Skype Brand Book is a great example. The guide provides a great presentation to your client, a tool to help them understand how the project will ultimately look and feel. Review the established style with the client (mood boards are great for this purpose), and have them sign off on the look. Refer back to the visual style guide often during your own work to make sure you’re adhering to the set guidelines.

A programming style guide needn’t be project-specific (unless you’re working with a new team that has already established a style different from your own). It may be as simple as following an existing style guide, such as the Zend style guide. You don’t need to start from scratch here, but you need to be consistent. Having a clear set of guidelines will help any developers who may come on board later.


4. Take Time to Research, Plan and Test


When developing a new project, particularly one that’s interesting and exciting, people have the temptation to dive right in and get to work. An initial lack of proper research and planning can have detrimental effects, especially for larger projects. Take the proper initial steps and spend time researching, diagramming, reading through source code and organizing your thoughts. It will end up saving you time and money down the road.

The same applies to testing your code. It will spare you the tedious and often embarrassing problems of code rewrites, because the only thing worse than having your code fail during a demo is having it fail in production. Testing code and debugging shouldn’t be afterthoughts, so work both into your project estimate and timeline. There are a lot of automated testing suites out there today — everything from PHP and JavaScript to Ruby and Python, and countless other languages. It’s a good idea to learn at least one for each language you plan to use. Don’t forget to have real users navigate your software too. You and your client should both spend time actually using the site you’ve developed before going live.


5. Document As You Go


If you’re like most developers, you cringe at the thought of writing documentation. Taking the time to document something, especially when it seems clear at the time of creation, feels like a waste of valuable time. However, years from now those thousands of lines of source code may not make nearly as much sense.

Furthermore, programming styles and skill evolve over time, which can make old code hard to dive back into. So take time to document your code as you go. Make it as intuitive as possible by using descriptive names and logical progression. As a good rule of thumb, you should never need to document what something does, but make notes in your code that explain a feature’s purpose and function. Also note any dependencies that it either relies on or creates. Stopping at the end of each new feature and taking the time to draft some end-user documentation is a good idea as well. This will make it much easier to train your client on the software, and will also serve as a good way to catch any usability issues or features that were accidentally omitted.


6. Use Version Control


This should almost go without saying, but many solo developers don’t use version control for their projects. For a large project, this simply isn’t an option. A good VCS (whether you choose SVN, Git, Mercurial or some other system) virtually eliminates the possibility of accidentally deleting or overwriting code.

In addition to providing an invaluable safety net, commit logs also help you track your progress. And the ability to branch, fork, and merge your code gives you the flexibility to experiment with different methods of feature implementation. You can also refine and fine-tune your software’s performance without the risk of breaking existing code. Finally, it simplifies remote backup and deployment to testing and production environments. These days, version control should be considered an essential part of your development, particularly if you collaborate with other individuals.


7. Take Thorough Meeting Notes


Whether you prefer to use a laptop or a spiral-bound notebook, take notes when you meet with your client and other collaborators. Otherwise, you may not retain that minor detail discussed during the meeting as effectively. Good note-taking demonstrates to your clients that you’re attentive, interested and dedicated to providing them with good service. It ensures you don’t forget the little details, and it also saves you the embarrassment of having to go back to the client for clarification. It sounds simple, but one minor modification that went forgotten or overlooked could mean major changes in code or functionality. Save yourself the headache, stress and humiliation and learn to write everything down.


8. Organize Your Assets


As with thorough note-taking, keeping assets organized is another important step toward streamlining your project work flow. You may even consider a separate version control repository for project assets that don’t belong in the finished code base. Your client will likely send you a lot of files, content, artwork and emails containing feedback and requests for modifications and new features. Often, they’ll send more than one version of those files or requests.

Think about putting these assets into version control or some well-defined project management software. It can go a long way toward helping you keep information organized. Sending the wrong file or hunting through hundreds of emails not only slows you down and introduces the likelihood of errors, it makes you look unprofessional.


9. Put Due Dates in Writing


Due dates may often be established when outlining the project and its contract, but if this isn’t something you’re already doing, or if your current system isn’t working as well as you would like, it’s definitely worth the attention. Large projects tend to have a lot of dependencies, and missing one deadline can often put an entire project behind schedule. Mark due dates on your calendar and discipline yourself to stick to them.

Due dates aren’t just for you, either. It’s not at all unreasonable to give your client due dates for various deliverables, such as content and branding, and to set fixed periods of time for reviewing and approving assets. Clearly define due dates for all parties, and furthermore, address the consequences of unmet deadlines. As with negotiating a contract and drafting the project outline, always try to be fair, but don’t be afraid to be firm. Your client will respect you for it, and your reputation and career depend on it.


Series Supported by Rackspace


rackspace

The Web Development Series is supported by Rackspace, the better way to do hosting. No more worrying about web hosting uptime. No more spending your time, energy and resources trying to stay on top of things like patching, updating, monitoring, backing up data and the like. Learn why.

Images courtesy of Flickr, ZedZAP .. gone camping, justonlysteve

More About: code, contract, design, dev, developement, MARKETING, programming, project, style, web development series

For more Dev & Design coverage:

If your favorite part of July 4 celebrations is the fireworks, then we’ve got a fun gallery for you. We’ve found five tools that offer virtual fireworks you can enjoy right at your desk.

Whether you want to send someone an animated message, play around to create a mesmerizing browser show or add fireworks to your own site, we’ve found web sparklers to suit.

Light the touchpaper, stand at a safe distance and rocket through the gallery. You can find out more about the tools by clicking on the blue title text at the top left of each slide. Let us know which ones you like in the comments below.

1. Enjoy Canvas Fireworks




This hypnotic HTML5 Canvas experiment offers three different shapes of fireworks that you can control with your mouse for a 3D wow experience.

2. Write a Message in Fireworks

This is tons of fun. Compose your own message and see it written across the London skyline in fireworks. You can also share it with an automatically generated tiny URL.

3. Add Fireworks to Your Own Site With Fireworks.js

You can add fireworks to your own site with this nifty Javascript animation experiment. Or if you’re just firecracker-curious, you can play around with it on the dev’s site.

4. View Augmented Reality Fireworks

Simply print off the marker, fire up your webcam and you can enjoy your very own miniature augmented reality fireworks show.

5. Go Old School With Fireworks Just For You

Dating back to 2002, this particular desktop show is perfect for kids, offering mesmerizing fireworks generated by the click of your mouse.

BONUS: Join the HTML5 Fireworks Festival

If you’re handy with HTML5 then join the “Hanabi fireworks festival” by forking the sample code, or creating your own from scratch. The resulting entries will then be revealed as an online spectacular on July 7.

More About: apps, fireworks, HTML5, july 4, List, Lists, software, web apps

For more Dev & Design coverage:

ShoutEm, the Zagreb, Croatia-based startup that started out as a white-label Twitter solution, has significantly changed its strategy with a new version, launching in beta today.

Instead of merely creating your own Twitter, ShoutEm now lets you effortlessly create a full-fledged iPhone app, with support for an RSS feed, event listings, video, audio podcasts, radio streaming, locations and microblogging – all in one.

We’ve tried the app creation process and it really is as simple as it can be: You add modules and rearrange them as you please, and then test the app on your iPhone by downloading a special app called ShoutEm Mobilizer and logging in with your ShoutEm credentials.

Your app can be quite simple; for example, it can consist only of an RSS feed from your company’s website. However, if you want, you can add a rich array of features that would put many iPhone apps to shame. One module we’ve had some trouble with was the images module, which works well with Flickr but with some other sites, such as Imgur, doesn’t display images correctly.

You can also brand the app with the colors and logos of your company, including setting up your own application icon, home image, iTunes artwork and more.

ShoutEm doesn’t offer a free version. To create your mobile app you must pay a monthly fee starting from $29.90/month for the Basic plan, which offers up to 1000 installs and lacks some of the more advanced features such as Events. The Advanced plan starts from $49.90 and offers up to 2,000 installs, while the Pro plan also offers plugins for WordPress and Drupal and up to 5,000 installs. The most demanding customers can negotiate the price for an Enterprise plan, which offers all of the above plus advanced customization of the application.

Viktor Marohnic, one of ShoutEm’s co-founders, spoke about the company’s strategy. “Remember when WordPress was all the rage, and everyone was creating websites and blogs? Well, now it’s happening in the mobile realm,” he says.

“There are tens of thousands of companies around the world that want – no, need – a mobile app, but can’t afford to go through the expensive process of hiring a development team, waiting for the app to be finished and submitting it to Apple’s App Store for approval. With ShoutEm, you don’t have to do any of that. Creating a mobile app with ShoutEm is simple, easy, customizable and – we think – cheap,” says Marohnic.

ShoutEm has prepared 100 beta invites for Mashable readers; to use one, register over at www.shoutem.com/registration using the code “mashableapps”.

More About: application, iOS, iphone, Mobile 2.0, mobile app, Shout’Em, smartphone

For more Dev & Design coverage:

facebook image

Jonathan Goldford is a partner at JG Visual, an Internet strategy company that works with organizations to develop and implement their online presence. You can connect with Jonathan on the JG Visual Facebook Page.

Right now Facebook Pages and custom landing pages are bigger than bottled water was on December 31, 1999. Michael Jackson, Lady Gaga, Starbucks, and the TV show House each have more than fifteen million “Likes” and are growing rapidly.

While there are an enormous number of articles that talk vaguely about how to create a custom landing page, very few discuss the nuances of actually designing and programming one. Here we will discuss the subtleties of designing a Facebook landing page and FBML programming. To make this discussion more concrete, we’ll use the creation of our own JG Visual landing page as an example.


Designing Your Company’s Facebook Page


Actually designing a Facebook Page is very similar to designing any website, except for a few considerations:

  • Design for a 520px Width — Facebook Pages must fit within a width of 520px. Since we can’t use a body tag in our Facebook Page, we’re going build our entire page in a container div set to a width of 520px.
  • Design for Any Height — We can make our Facebook Page any height, but we have to remember that most people interact above the fold and at the time of writing this, our Facebook landing page will start 135px from the top if the person viewing is logged in. If they aren’t logged in to Facebook, that increases to roughly 250px from the top of the page to allow space to log in or sign up.
  • Account for the Width of the Company’s Name — Since we’re interested in creating a call to action for our Like button, we must take into account our company’s name. The Like button appears just right of the company name at the top of the landing page. If we’re going to point to the Like button, we need to figure out the pixel width from the left of our landing page to the start of our Facebook Like button.

To take into account the 520px width and the distance for your Like button, you may want to take a screenshot. Once you take a screenshot of your Facebook Page, pull it into a design program like Photoshop and design over it. Here is a look at a piece of our final Facebook Page design.

landing page


Programming Your Company’s Facebook Page


Now that we have a design we’ll walk through how to program our landing page to use on Facebook.

Begin Programming Outside of Facebook

There are a number of reasons why we should start programming our Facebook landing page outside of Facebook.

  • Facebook Offers No Coding Support — Facebook provides only a small box for you to code in, and provides no syntax coloring or syntax checking.
  • Facebook Caches External Files — Facebook caches every external file causing changes to external CSS, images, Flash, or other external files to not show up without changing the version query string on the end of each file.
  • You’ll Publish Untested Code — Once you save changes, those changes will be live on your Facebook Page. You probably don’t want users seeing an unfinished or broken landing page.

Program the Page Without FBML

Since we aren’t going to be using Facebook to start programming, we can’t use Facebook’s Markup Language (FBML). In order to account for how Facebook will handle our code, we will adjust our code to follow these rules as we build our page.

  • Use Plain Old HTML and CSS — Program your Facebook Page like you would any page using HTML and CSS. 90% of the code will act exactly the same way. The rest you can adjust when you move the code onto Facebook.
  • Load CSS Externally — CSS should be loaded using an external style sheet file instead of using an internal style sheet. Internet Explorer 6, 7, and 8 can’t read internal style sheets on Facebook Pages.
  • Host Files on Another Server — Every image, CSS file, Flash video, or other external file needs to be hosted elsewhere. Facebook will not host any files for you.
  • Make All Paths Absolute — All paths to external files must be absolute. Write an image link like http://www.example.com/images/picture.jpg. Don’t write images/pictures.jpg.
  • Remove Firefox’s 1 Pixel Gap — Mozilla Firefox creates a 1-pixel space between images on Facebook landing pages. Use a class with the style display:block to remove the space. In our code, we use the class “nospace” to implement this style.

To start, create one HTML and one CSS file. The HTML file will hold the HTML and eventually the FBML. The CSS file will hold all of your styles. We’ll call them facebook.html and facebook-styles.css.

Start by linking to the CSS file and creating a div with an ID of container. Give the container a width of 520px in the CSS. Also, if you want to brand your landing page a little better, you can choose a font. To override Facebook’s default paragraph style, we added a font-family style for #container p. Finally, Facebook uses a default font size of 11px and a font color of #333. To best imitate Facebook while testing, we included the 11px font size and also set the container text color to black to match our company colors.


facebook.html

facebook-styles.css

Create the remaining HTML and CSS for your Facebook landing page. Here is the code we have after finishing our page. At this point our landing page should look exactly how we presented it in the design instructions before.

facebook.html

facebook-styles.css

Test the landing page in all the browsers at this point to make sure it appears correctly. You really should test the page throughout building, but this serves as a good reminder.


Add in the Necessary FBML


The page looks exactly as we expected it to, but right now if someone already Likes our page, they will still see the call to action for them to Like at the top. Let’s put in a conditional statement using FBML that only shows the action image when you aren’t logged in or haven’t Liked the page. This way, once someone Likes the page, they won’t be prompted to do so again.

Regular HTML

HTML with the FBML Conditional Statement

Let me explain the code:

  • fb:visible-connection — This code checks to see if the user has Liked the page before. If the user has Liked the page then the content inside will appear.
  • fb:else — In this case fb:else will display only to users who haven’t Liked the page. That is why we put the call to action inside the else statement. Also, unlike typical else statements, fb:else is placed inside the other conditional.
  • In case you want to add something else besides a call to action for your Like button, below are some examples of other commonly used FBML items.

    Adding the User’s Name — fb:name

    Fb:name will display the full name of the logged in user. For example, if a user named John Smith comes to your page the code below will display “John Smith”. This can be used to greet a user by name when they come to your landing page.

    Adding the User’s Profile Picture — fb:profile-pic

    Fb:profile-pic will display a user’s profile picture if they come to your landing page. For example, the code below will display the current user’s profile picture at 64px by 64px.

    Adding a Share Button — fb:share-button

    Fb:share-button will display a share button that allows users to share a link on their own profiles. For example, the code below will display a basic share button for Mashable.

    Adding a YouTube Video or SWF File — fb:swf

    Fb:swf will display an image that when clicked will show a video. For example, the code below will display the thumbnail used for The Social Network movie trailer. When that image is clicked, the trailer’s YouTube video will automatically play.

    Unfortunately, Facebook requires that the image be clicked before the video will play. You can create your own image to show through the imgsrc parameter. We wrapped the FBML in a container div to allow us to style it and added ?autoplay=1 to the end of swfsrc so the user won’t have to click twice to play the video.

    If you want to add your own YouTube video, replace the text in the parameters swfsrc and imgsrc where it says “1B95KLmpLR4” with the ID of the YouTube video you want. You can find the ID in the URL of any YouTube video after the text http://www.youtube.com/watch?v=.

    Adding an FLV file — fb:flv

    Fb:flv will display a video player for FLV files. For example, the code below will display a play button that you click to play the FLV video. fb:flv provides the player and all the controls. All you need is the FLV file.

    Adding an MP3 File — fb:mp3

    Fb:mp3 will display and play an MP3 music file. For example, the code below will display a music player that users can click to play. The player will then rotate through a display of the song title, song artist, and the album name.

    Adding a Form

    While adding a form is not FBML, people are often curious to learn how to place them on their Facebook landing pages. To do this, copy and paste your form code into the FBML submission box. Make sure you use the following code to start your form:

    Adding target="_blank" will open a new window when the form is submitted so the user isn’t taken away from Facebook.

    If you want to add a newsletter signup form to Facebook, both MailChimp and CampaignMonitor have tutorials that explain the process. If you don’t use one of those services, you can usually drop in the code from your e-mail marketing company to make this work.

    Adding JavaScript

    Adding JavaScript is outside the scope of this article, but you can learn more about Facebook JavaScript at developers.facebook.com/docs/fbjs. As of right now, you should remember that JavaScript will not be activated on your landing page until the user has taken action.

    If you haven’t found the FBML you’re looking for, visit Facebook’s Official FBML page.


    Publishing Your Company’s New Facebook Page


    After adding all of our FBML, we’re ready to add those final touches and publish our finished Facebook landing page.

    Uploading External Content, Adjusting Links, and Adding a Version Query String

    Once we’re done adding all the necessary FBML we need to move all the CSS, images, videos, and other external files to a server. To host your files, we recommend using your website’s server if possible.

    Once all of our files are located on a public server, we need to adjust our HTML to make all of our paths absolute and add a version query string. Previously I mentioned that Facebook caches all of your external files. This means that once you publish your Facebook Page, any changes you make to external files will not show on your landing page. This happens because Facebook doesn’t know the file has changed and is loading its older saved version. To trick Facebook, we use a query string at the end of our filenames and increase the number whenever we make a change to that external file. Facebook then thinks we’re using a different file and loads it up.

    Old Relative Path with No Version Query String

    New Absolute Path with the Version Query String


    Test Your Page Using the JavaScript Test Console


    One of the biggest disadvantages of Facebook landing pag
    es is that Facebook provides no place for you to test your code. We have to use the Facebook JavaScript Test Console.

    Copy and paste your HTML into the JavaScript Test Console and click “Run Code.” You’ll get to see your code in action. If everything looks good, you’re ready to publish your finished Facebook landing page. If not, make sure to check the links to your external content. Also, I noticed that the Facebook JavaScript Test Console has trouble loading videos, so you may be forced to test that code directly on your landing page.


    Publish Your Finished Facebook Landing Page


    Finally, you are ready to publish your HTML file to the Edit FBML screen. Follow these steps:

    • Click “Edit Page” on your Facebook Page.
    • Click “Apps” on the left side of the page.
    • Under the FBML section click “Go to App.” If you don’t see this, please add the “Static FBML” application to your Facebook Page.
    • Copy and paste your HTML code into the FBML box.
    • Title your FBML. This will show up in the tab at the top of the landing page. While you may want to use “Welcome,” remember that those who Like you will not land on this tab. Instead they will land on your wall and will see another tab that says “Welcome” at the top. We used “Who We Are.” Hopefully you can think of something more creative.
    • Click “Save Changes.”
    • Go view your Facebook landing page.

    • Make Your New Landing Page the Default Landing Tab


      Now that you’ve put in all of this time programming your custom landing page, you probably want to make it your default landing page. This way, when someone that has not Liked your page comes to it, they will be taken to your custom landing page instead of your wall. Here’s how to do it:

      • Click “Edit Page” on your Facebook Page.
      • Click “Manage Permissions” on the left side of the page.
      • Beside “Default Landing Tab,” use the drop-down menu to select the title of your new landing page.
      • Click “Save Changes.”

      Note that as an admin you will always see the content that you only want shown to those who haven’t Liked your page. Check with someone who has Liked your page and is not an admin to make sure they only see the content that’s meant for them.


      Congrats, You’re Finished!


      Nice work. You’re done. In case you need it, here are the final HTML, FBML, and CSS we used for our Facebook landing page.

      HTML and FBML

      CSS

      Since there is no one correct way to program a landing page, we would love to hear what you think. Have you ever designed or programmed a Facebook landing page? How did it go? Did you run into any issues? Do you have any additional tips we didn’t cover here? Let us know in the comments.


      More Dev & Design Resources from Mashable:


      How App-Like Design Can Turn Your Site Visitors Into Customers
      4 Predictions for Web Design in 2011
      HOW TO: Get the Most From Crowdsourced Design Competitions
      HOW TO: Get More Out of Your Fonts
      10 Predictions for Web Development in 2011

      Image courtesy of Flickr, smemon87

      More About: business, design, facebook, landing page how to, marketing lists, web design, Web Development

      For more Dev & Design coverage:




Potential owners of Google/Samsung Nexus S smartphone now have another (albeit purely aesthetic) reason to choose that device over Apple’s iPhone 4: It will probably be available in white color.

We say probably because all we have now are a couple of images of the white version of the device, showing that Samsung has once again opted for a black front and a white back combination instead of making the Nexus S uniformly white.

Still, if you’re adamant about having a powerful, white, touchscreen smartphone, the Nexus S might be your best bet, as the white iPhone 4 has been as elusive as the Yeti and, last we heard, it won’t hit the stores before spring 2011. There’s no word on when the white Nexus S might appear in stores, but we’re hoping it’ll be sooner than that.

[BestBoyZ via Engadget]

More About: android, Google, Nexus S, samsung, smartphone, trending, White




Twitter will triple its advertising revenue to $150 million in 2011, and it might reach $250 million in revenue next year, research firm eMarketer predicts.

Twitter has so far managed to attract big advertisers such as American Express, Coca Cola, Nissan, HP and Starbucks, and companies such as Dell have proved they can promote their products well using Twitter even before it launched its promoted tweets program.

“If Twitter can grow its user base and convince marketers of its value as a go-to secondary player to Facebook, it will succeed in gaining revenue. In 2011 it must work overtime to give its early advertisers a positive experience,” said eMarketer analyst Debra Aho Williamson.

eMarketer came to the $150 million figure by comparing Twitter with Facebook, which had ad sales of about $150 million in 2007, right after it got serious about selling ads. Although Twitter is still a lot smaller than Facebook, whose 2010 ad revenue was estimated at $1.86 billion, with 145+ million users and constant growth Twitter might soon start breathing down Facebook’s neck.

Furthermore, eMarketer predicts that the majority of Twitter’s advertising dollars in 2011 will come from the U.S., but in 2012 at least $25 million or 10% of ad revenue should come from international advertisers. Also, eMarketer sees Facebook’s ad revenue growing to an astonishing $5.7 billion in 2012, while MySpace should drop from its current $288 million to $156 million in that same time period, which would make Twitter bigger than MySpace not only in terms of traffic but also in terms of ad revenue.

Are eMarketer’s predictions for Twitter too bold, too timid or right on the money? Does Twitter’s advertising model have what it takes to keep the advertisers interested long-term? Share your opinions in the comments.

Image credit: eMarketer

[via Bloomberg, eMarketer]

More About: ad, ad sales, ads, business, MARKETING, Revenue, social media, social networking, trending, twitter

Whether you want to improve your existing skills or learn new ones, we’ve provided plenty of web design and development resources in the past year.

Here we recap the best posts that fell into this creative category. These include a wealth of tutorials, resources, galleries, interviews and more.

Have a read below for a look back at Mashable‘s Dev and Design resources from 2010, and be sure to keep coming back next year for more.


Mobile Development Resources





google phones

Whatever mobile platform(s) you favor, we’ve got you covered.


Icon Resources


From minimal to festive, here’s a roundup of great icon galleries.


Resources for Web Developers


PHP tips? Check. Apps for developers? Check. Online resources? Check.


Apple-Related Resources


The iPad made an impact on dev and design this year. Here’s why.


Photoshop Resources


Photoshop is one of the primary tools in the digital designer’s belt. We got you up and running with the imaging software in 2010.


Career Resources


Whatever career path you’re following in the online dev and design world, these articles can help.


Web Design


We’ve offered a wealth of design-related resources this year — dive in!


Interviews


From iconic designers to icon designers, we’ve talked to some rather interesting folk during the past 12 months.


Fun Resources


It’s not all work, work, work as we add a little fun with these light-hearted articles.