I have an ASP.NET MVC application, and the visitors can select from two languages to view the site. My question is: should the url's themselves also be language dependent, like:
/en/approach -> refers to the English page
/nl/aanpak -> refers to the Dutch page
or should I just use /en/approach for both english and dutch pages?
Thanks,
L
It would be better to split them out. It would allow search engines to index more pages and also makes the urls hackable. Also, if you are planning to use output caching, you would easily be able to cache both localization.
Here is a good post about how to accomplish localization with MVC.
How to localize ASP.NET MVC application?
Like Phil said... It helps you, the search engine and helps your users understanding that it's separated content.
And!:
Keep the content for each language on separate URLs. Don’t use cookies to show translated versions of the page. Consider cross-linking each language version of a page. That way, a French user who lands on the German version of your page can get to the right language version with a single click.
Avoid automatic redirection based on the user’s perceived language. These redirections could prevent users (and search engines) from viewing all the versions of your site.
- Google, Multi-regional and multilingual sites
Related
Suppose I have MVC application with some static and dynamic web pages. How to add search feature for such site?
I dont want to create simple page searching for the data contained in database, I want to be able to index whole pages as they are displayed to customer.
Any solution for ASP.NET MVC4/5?
Shell I use existing solution (which?) or create my own one ?
Disclaimer: it's the product of the company I work for.
You can use SearchUnit for indexing/searching MVC web sites. There's a free Community version, and a more powerful paid version.
I don't know the specifics of what you need, but it's easier to use and more rounded (eg. includes spell checking, many document format parsers) than other options such as Lucene (IMHO, let me know if you disagree).
MVC specifics are here.
Learning asp.net mvc and I am building a small website that will be initially in 2 languages.
10 or more pages are static pages with bold bits etc...
What is the best approach for localising these pages?
Is there a way to do it without creating a page for language that would be a no in my book.
How do you handle localisation of static pages in asp.net mvc? In asp.net there was some sort of localise control.
Any suggestions?
The way to do this is using resource files. You create an resource file for your default language and then one for each other language your site should run in.
This article describes how to do it. For example if you want english (default) and french you could create two resource files (.resx files) Website.resx and Website.fr-FR.resx. The first file for your default language, which is english and the second file for french. Both files exists from a key-value pair.
EDIT: Another interresting article describing the same idea can be found here.
I think that the best approach is still creating two files for them,
cause they are not static pages forever, they may change in future,
Or you can generalize the solution and save the text in database
for those two languages and render the correct content base on the selected culture.
They can be saved in the sense that they are pages on newsroom,
whenever you add a news you enter the text for both cultures.
It's well-past time for The Office's websites to be upgraded and for the main public one, I'm considering migrating the existing .Net 1.1 ugliness up to ASP.Net MVC.
The only real doubt I have is over the fairly extensive work on SEO that has been carried out on the site.
What considerations should I bear in mind regarding SEO when moving from an old webforms site to MVC urls?
If your question is only about URLs, then the answer is that redirecting the old URLs to new ones with a permanent redirect (301) should do the trick - search spiders should update the results to new links without any SEO hit.
There will be other factors to consider as well - e.g. changed HTML structure of pages (I hope you are not going to mimick the output of the old ASP.NET in your new web app :)).
I would take a long hard look at routing. That's going to be the key to getting the SEO working as desired on the URL's. You may also want to have html helpers for formatting the rich url's.
You should consider your old links using either a) standard web forms with routing or b) making a large routing table that handles request for all of those old URLs that have already been cached / scraped by Google, Yahoo, Bing, etc. If, as you say, you already have some good SEO in place, you don't want all of those links to suddenly stop working.
I'm developing a website using ASP.NET MVC. The website should handle multiple languages.
I would like to ask what are the best practices of handling multiple languagues - both for "static" texts and taken from DB. I read some threads about this on stackoverflow but i'm not sure how can I implement in when data from DB are received. I also read this article
Well, if you need to localize your web application then you can't really use any "static" text. The article link you included talks about using resource files. While this does work in ASP.Net MVC it means that everything in your view pages will have to be an ASP.Net Literal control and you have to push ALL of your textual content into the .RES file and not put any of it in your view pages.
If you have a lot of users from different cultures then using the .RES files will be the way to go. If you have the majority of your users all in one language and just a small percentage in a different language then you may be able to take advantage of Microsoft’s translation engine. You just embed some JavaScript in your page and Microsoft will translate the page’s text for you.
How to implement the multilingual umbraco 3.0?
There are two different approaches to this.
The documentation on the Umbraco website describes how to do 1:1 multingual sites. This means that you have one site structure and different language tabs in a single document type for each translation od the content. This is then selected by using an on page selector on the website (a flag icon or the like).
Here's an example of a 1:1 site
This is the most efficient set up if you have lots of shared content i.e. the content and structure is exactly the same, the language is just different.
The second approach is to use separate page structures for each language, such as:
International Homepage
------> English Homepage
------------> English content page
------> French Homepage
------------> French content page
The advantage of this structure is that it is very easy to set up, but if you share lots of content it can be cumbersome to manage. It also has the advantage that you can lock the editing permissions down for country/language specific editors.
With the above structure you can also point individual URLs to the country pages.
Without knowing more about what exactly your requirements are it's hard to answer more fully as to which is the best approach. It may also be possible to create a hybrid solution.
Here are some links which may help:
http://forum.umbraco.org/yaf_postst2209_Multilingual-structure-in-umbraco.aspx
http://www.nibble.be/?p=32