Partial site translations in Umbraco - localization

I'm about to embark down the creation of an Umbraco site, where it will initially be presented in English, but subsequently some pages will be presented in foreign languages.
I'm aware the recommendation is to create new root nodes for each language and then create a whole new site for a new language, but in this instance I want to keep 90% of the site in English and have only certain nodes translated, for instance press releases about a certain country.
I've seen this article on SO but it seems to point to the whole new top node route. Has anyone had any success in just single node translations? I'm not interested in having multiple URLs for multiple languages; just single pages appearing in a different language should that page have a translation.
Thanks in advance.

this package might be your best bet https://our.umbraco.org/projects/backoffice-extensions/vorto/ basically add the option to add multilingual to any property editor so in theory you can have a page with half English part and half any other language. you get to keep everything under one root, same urls etc but with sections in diff languages.

Related

Front end page urls

I have an umbraco installation.
I published a content named "Account" and umbraco gave it this url /account.
Fair.
Then I published a content named "Register" under content Account (I allowed Account Doc Type to have Register Doc Type as child).
I would expect the url of the new content to be /account/register, but umbrace gave it /register.
Why is this happening? What's the point of allowing child content types, and building a content tree, if the urls are all from root? As a newbie to umbraco, I consider it a logic flaw. For a CMS that claims to be friendly, that's not friendly at all. I'm a developer but I can't waste half of my day looking for umbraco answers and tutorials online. A friendly CMS should be self explicatory while being used, and should take care of all common assumptions a newbie may have.
How can I make the Account->Register content node to appear in /account/register url?
I think what you're seeing is a side-effect of a feature in Umbraco that is supposed to support the pattern most develops use when creating an Umbraco website.
The best practice when building Umbraco websites is to create a "Website/Root/Site" document type and place this in the root of your hierarchical content structure. Beneath this document type you place each of your pages as direct children. This allows you to set hostnames and culture on your site as well as it allows you to keep your entire site in one "bundle", and it also allows you to do multiple subsites within the same Umbraco website. It is pretty common practice to structure your website this way.
However - as you expect - this would give your URLs such as domain.com/website/account/register due to Website now being an actual content node in Umbraco. As this is really not something anyone would want - Umbraco has a built-in feature allowing the top level node to be hidden from the URL path. This results in your URLs being domain.com/account/register in this case.
If you however consider your site - this feature results in your register page getting the URL: /register since the /account part is a top level node that will be ignored when generating URLs.
This behavior is triggered by the setting umbracoHideTopLevelNodeFromPath which can be found in web.config of your site (true by default).
I would however recommend that you do not change this setting and instead add in the root node for your site as it will make things easier for you to manage in the future - it is also the best practice way to structure a site.
This should result in URLs being generated the way you are expecting them to be. Child nodes will have URLs that reflect their name and location in the content tree.

Using data/blocks on pages in Umbraco

I am new to Umbraco and was wondering what is the best approach to organize content structure to include pieces of dynamicly added blocks on a site. Let's say I have services section on my home page, and there are service item blocks which are dynamicly added/deleted by the content editor through the backoffice. So where do I actually create this services folder, and service items? It must be also taken into consideration that I am developing multilanguage website.
The question is pretty much similiar to this one in the umbraco-forum , but because I develop for multilang, I find it inconvienet to create any other nodes (for settings or these blocks) on the root level, because they will have to be copied to other languages.
So far I think of three ways to do this:
Create services and service item document types, and include them under the Home page node. The disadvantage of this approch is the confusion between "real pages" and this kind of blocks. (though the workaround could be prefixing the name of "data/block" folder with underscore sign, e.g. "_Services")
Create differents folders for "Pages" and for "Blocks" under under Home page node. Then I could use Url rewriting to overcome extra part which are added in the paths for pages. (so for example map "/pages/about-us" to "/about-us"
Use media types for this kind of blocks. About this I am not sure at all, because I see no option to copy items for other languages as it is done in document types.
The Umbraco resource refers to canvas, which is a feature that allows a content editor to modify content on a page in a WYSIWYG editor style. Canvas is unreliable & has been disowned as buggy & not to be used even on the Umbraco training courses.
You could build a back-office function in a custom datatype (http://umbraco.com/help-and-support/video-tutorials/developing-with-umbraco/data-editors/creating-a-custom-datatype-using-the-usercontrol-wrapper) that mimicked a WYSIWYG editor, but I don't think one currently exists.
The usually pattern when you want blocks of functionality in Umbraco is to use macros. Macro are maintained under the developer section, rather than the content section.
You could also use base extensions (http://our.umbraco.org/wiki/reference/umbraco-base) for dyanmically generated blocks that use Umbraco data.
Whether using a macro or /base you could use some hide/show fields in the affected doc types to show or hide specific blocks on specific pages.

microsite in umbraco

I am relatively new to umbraco and have just got the site build but the clients request for a microsite with a completely new look and feel.
So how do I set up a new microsite in umbraco.
Please Help.
Thanks a ton
To give pages within Umbraco a completely different look and feel from the others, there's a few different ways you can go. Obviously there's more than one way to solve a problem, but I'll just mention a few that I can think of and explain how they'd work.
Create a new master page template that has your new design, then create child templates for each document type, to include a home page, a standard text page and anything else you may need. Assign these templates to the document types that will use them.
Pros: Easiest approach. Allows most flexibility in design.
Cons: The user can choose the wrong template or forget to set the right template.
Create separate templates as in option 1, but also create separate document types. Assign the templates only to the new document types. Each document type can extend your existing ones to inherit the same properties or you can create entirely new ones.
Pros: Ensures that the uses uses the correct template all the time. Allows most flexibility in design. Allows site specific customization - can add or remove properties.
Cons: The number of document types doubles and therefore the amount that appears for the user to select. Of course the number that they see can be limited by what templates they are allowed to create.
Use existing templates, but include a check that determines which site is being visited, depending on the path or subdomain, etc., then dynamically load different style sheets.
Pros: You do not need to create separate templates or document types for the microsite.
Cons: Your master template's markup will have to be generic enough to compensate for both designs, therefore it isn't as flexible.
Once you choose an option for how you will structure and style the pages of the microsite (and remember that my list is not conclusive), you will need to determine where to setup the node structure. The best option here, if the microsite will be subdomain or if it has its own domain, would be to add it as a separate home node first and then add all of its own pages below it. Then you can actually setup a different host reference for the site within Umbraco. There have been a few answers on SO that mention how to do that:
Assigning hostnames in umbraco
Publishing multiple sites on a single instance of umbraco
Here are some basic steps to allow Umbraco to use other domain names:
Setup your web server to accept host headers for the specific domain/subdomain. In IIS 7.5, this can be done by adding bindings for the domain/subdomain.
The new node needs to be a direct child of the Content node.
Right-click the node and choose "Manage hostnames". Then add the domain/subdomain URL.
Hope that helps! Feel free to ask more questions.

Adding content to umbraco?

I recently made the decision to develop our new company website (http://www.idealcode.net:8005/AboutUs.aspx) with Umbraco. I hired an Umbraco developer and we started work.
Please don't flame me or anything but I'm starting to worry about my decision.
The main reason why is because I seriously cannot find anything that explains in simple terms the workflow for creating a new page. As a web developer, it seems as much work to create a page in Umbraco than creating one outside of a CMS.
The workflow as we have it is:
Create a master page (probably not required for every page, but in practice seems to be on almost every page)
Create a document type with the PRECISE content areas that will be on the page
I guess at this point our end users can actually create a page...
We spent about 10 hours implementing the blog module and it STILL does not work and the dev needs to customize the template.
As a web developer, I honestly wonder how this is going to save us time? I'm not trying to diss Umbraco--I'm just worried about explaining this to my superiors. I could have created a site with some dynamic areas and blog in ASP.NET MVC in the roughly 20 hours we've spent on this so far...
The best way to get up to speed quickly on Umbraco is to look at the screencasts made from Umbraco corporate:
http://umbraco.tv/products/umbracotv
After that, the Umbraco community is quite good at answering questions and helping out:
http://our.umbraco.org/
As far as your specific question:
I could be wrong, but I think the thing that you aren't leveraging is inheritance. This makes things easier in Umbraco.
First, DocumentTypes can have parents and they inherit the data fields from those parents. For example, a Content Page DocumentType could have the meta information, main content area, and intro text.
Many pages within your site will likely go no further than that. Basically a rich text editor page (think "About Us")
Then when you add the News Item DocumentType, it can inherit all of those fields from Content Page and simply add a Date and Image field (as an example).
DocumentTypes can have many templates available to them. So if the data doesn't change, but the markup (design) does then you can set a new template in the Properties tab.
Templates can have parents as well. So you can build them up like this:
Main Template
|____One Column Layout
|____Generic Content Page
|____News Area
|____Two Column Layout
|____Product Compare
This works just like master pages in ASP.NET.
So this is pretty long winded. Maybe I'll think about a blog post. Does this help at all?
I second your thought, but consider following scenarios:
Umbraco or any CMS is no ideal solution, if:
1) The complete site will end up having only 20 pages
2) There is only a single user / editor of the site
3) The content is not much dynamic and once created will not change over couple of years
4) The site have only maximum 10 end users
5) The data is not pulled from any external source or/and all are static pages
Where as a CMS / Umbraco is solution for:
1) The is dynamic and still growing after first 1000 pages
2) The client have multiple editors and want to maintain history of publications
3) The content is pulled from various external sources
4) Site end users/contributors are 100+ and still growing
5) Last but not least, the site have 1000+++ visitors daily
I can go on and list all the possibilities of having CMS at the first place, but you need to decide and analyse your own requirements. There is no point in deploying a Samurai to kill a mouse, but definitely you should have proper equipment if you are going to hunt a tiger :D, joke apart just don't deploy any CMS for sake of learning.
Mean while, have a look in books available on Umbraco site to get started (http://umbraco.org/get-started/for-developers) or install Runaway module to start with.
Sanjay Zalke
>As a web developer, I honestly wonder how this is going to save us
time
It will save you time once you become proficient. It has a learning curve for sure, but once over that hump it will save you time - (that is not unique to Umbraco). I have used other CMS products that were easier to get my first site up - but then I was disappointed that I pretty much maxed out what the CMS could do for me - so far it doesn't appear that I will outgrow Umbraco's capabilities anytime soon.
Umbraco can be a wise choice if your site content is very dynamic with lots of pages.
The USP of Umbraco is the re-usability of the document types and a clear seperation of mark-up and content. It greatly reduces the headache of the site editor.
Although initially it may seem a bit confusing or i would say intimidating, but with the help of web-casts on http://umbraco.com/help-and-support/video-tutorials and the user forums things can get simpler.
I started using Umbraco a month back and so far experience has been good.
Start thinking about your site in terms of what is in common from one page to another. If every page in your site needs its own master-page than something is wrong. A good site layout will include the flexibility you need from one page to the next, but still enforce consistency and a common design.
Once you have the common elements of all the similar types of pages, start defining document types for this various types of pages. For example, you might have Basic Page document type, a News Item document type. You can define the various other pages, like "HomePage" or "Section Home", etc. If you have a slideshow, you could create a document type for each "slideshow Slide", etc. Umbraco allows you to build out a very flexible content tree very quickly, and is one of its biggest advantages.
Even if I am the only developer on a site, I still prefer using Umbraco over building a non CMS site. Once the site architecture it determined, development becomes very fast.

Having trouble implementing multilingual umbraco 3.0

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

Resources