So how does localization work? With CS, localization simply changes the tags and text on your pages and anywhere else on your UI, this post will show you how to change that text, and make it work with your local language. Note that CS will accept nearly any language that is provided to it in a form, actual text rendered on the page will be English by default though.
Begin with locating the files we're going to be working with.
A) Communityserver.config - Located via root->communityserver.config
B) languages.xml - root->Languages->languages.xml
Now let's go through actually getting your site's language changed.
1) First open up your languages.xml file, near the top you should find a tag that looks like this:
<language name="U.S. English" key="en-US" />
Now you want to add an additional tag for your seconary language, do this by selecting one of the tags just below that are comment out, and moving it just below your english tag, or by simply creating your own if you don't see a tag that fits what you need. When doing so you'll just need to duplicate the english language pack tag structure. The name attribute will be what you want to show up inside your CS site when selecting your language pack or representing what language your using. The key attribute will be what CS looks for when it's locating your newly creating language pack in the file system. In my case, I'm creating a French language pack example, see the screen shot below. Now save your xml file and close it.

2) Now go to your server file system to the root->Languages folder. Inside you'll find a "en-US" folder, copy that and make a duplicate by pasting it directly back into the Languages folder. Then rename that duplicate folder to the same name as you provided to your "key" attribute inside your languages.xml file. Keep in mind that in this case we're creating a new language pack. If you're adding a language pack, they should provide you with this folder and you'll just need to drop it into your languages folder.
![]()

3) You should now be able to see your new language pack available as an option. Navigate to your site, and login to your account. Then click the "Edit" button on the top-right hand corner of your screen, scroll down and you should see a language drop down menu and your new langauge should be found.

4) Go to your communityserver.config file, scroll down until you see the tag called core, inside there will be an attribute called "defaultLanguage". Set that to whatever language pack you want and by default a user's account will be in that language. Note that with language packs, you can have more than one installed and allow users to select the one they want to use.
<Core
defaultLanguage="fr-FR"
.........
5) Now, you have officially installed your language pack! Hold up for one minute though, if this is a provided language pack then you're all set, but if not, then it's there, but as of right now it does you no good at all since it's still in English. So go back to your languages folder and let's look inside. You'll see three folders called emails, errors, and metadata. As the admin of this site, you probably won't need to alter anything in the errors folder since that is purely technical and not *directly* user related, that is of course your choice. So the files in the emails and metadata folders will need to be changed as well as all xml files found in main folder.
These will include:
A) ControlPanelResources.xml - This controls all text in the control panel, this doesn't have to be changed if your core users are doing basic functionality on the web site and site administrators can interact with an english language pack since they are the primary users of the control panel.
B) FeedReader.xml
C) FileGallery.xml
D) Messages.xml
E) Resources.xml - This is the primary resource file that you will need to make sure is completely translated, as it's the main file that all main page controls pull their text from.
F) Templates.xml
6) So how does translation work? Well the CS team has done something clever that allows Controls to pull their text from these resource files instead of providing them directly into the inline html, that way this whole process is made much easier than visiting dozens of documents and changing text from hundreds of different places. The example control below references the "SearchResults_PostTo resource tag inside the Resources.xml file and displays the text: "Posted to"
<CSControl:ResourceControl runat="server" ResourceName="SearchResults_PostTo" />
Notice it calls tag: <resource name = "SearchResults_PostTo">Posted to</resource>
So this control is given the SearchResults_PostTo identifier and it pulls back the tag containing that same identifier.
All tags in the files will need to be changed to reflect the language you are translating to, so your tag will take on the form:
<resource name = "SearchResults_PostTo">Translate this text to your language</resource>
Once you've gone through translating these tags, you should see these changes reflected on your site fairly quickly. If you don't, you can simply restart your site in IIS to clear cache and your changes should soon take affect.
<edit>
If you're working with a site that requires right to left text, the general fix for this is using CSS, you'll need to open up your Common.css file found via root->Themes->hawaii->style. Then inside you'll find a section near the top that looks like this:
body, html
{
margin: 0;
padding: 0;
color: #333;
background-color: #f0f0f0;
background-image: none;
font-family: Arial, Helvetica;
}
Each of the items inside is a site-wide attribute, for left to right text rendering add an additional one that looks like this:
direction: rtl;
That should do it for you!
</edit>
Thanks,
Ryan
