I read various Composite discussions regarding designing websites not only for multilingual scenarios but also to support localizing volcabulary and grammar for a specific community; for example, technical vs. general public communities.
I found these discussions compelling however they didn't explain how to implement these scenarios in the context of C1 for adding different "dialects".
I am guessing that these dialects should be manually added to the following data source file and treated like a language: "Composite.Cultures.en-us".
Please explain if there is a best-practice for handling the above scenario and if there is a less manual method for achieving it.
If you want to show different content with in the same page structure for different "dialects", then yes - treating them as languages make sense.
The list of languages is fetched by the system from Windows registry, so if you want to add a dialect as a language, you can register it in with some code ( http://msdn.microsoft.com/en-us/library/ms172469.aspx ). I wouldn't recommend it though, as the related ASP.NET process would have to have access to windows registry, and there may be some additional work each time you need to move the site to a new environment.
You can also use an existing culture code that you aren't going to use as a dialect switcher F.e. en-US / en-GB / en-AU.
Another alternative would be to have separate placeholders for content on each page, one for technical users and one more for non-technical. One or another will be shown depending on url/cookie. In this approach you also you have to decide if if you want to keep them under the same url for crawlers or under different, should pages have the same comments or separate, etc.
If dialect sites aren't keeping the same page structure, you may also decide to have them as different page trees, and use some kind of a meta data field to link related pages one to another when you need to.