6

I simply want to get a list of all enabled languages for the EPi Server website (enabled in the "Manage Website Languages" panel in Admin mode) and preferably also be able to retrieve the path to the flag icon and of course the culture name/ID.

I'm using EPiServer 6 R2 so if the code works for that version it would be lovely. Pointing me in the right direction would be great too.

kjetilh
  • 4,821
  • 2
  • 18
  • 24

2 Answers2

13

You mean

ServiceLocator.Current.GetInstance<ILanguageBranchRepository>().ListEnabled();

However you should really not be using the ServiceLocator at all and instead take a ILanguageBranchRepository as a constructor parameter that will be automatically resolved by StructureMap. This gives your class a clear list of its dependencies and makes unit testing it a lot easier as you don't have to mock the ServiceLocator.

Tommy Ivarsson
  • 605
  • 4
  • 7
8

In EPiServer.DataAbstraction you have LanguageBranch.ListEnabled().

Take a look at this file to see how it's bound in Admin mode: C:\Program Files (x86)\EPiServer\CMS\6.1.379.0\Application\UI\CMS\Admin\EditLanguageBranches.aspx

Johan Kronberg
  • 1,086
  • 7
  • 12
  • 1
    Note: Not the answer to your question but you could look at the start page like this instead to find the languages available, it's usually translated to all languages: PageDataCollection languagesForCurrentPage = EPiServer.DataFactory.Instance.GetLanguageBranches(PageReference.StartPage); – Johan Kronberg Oct 15 '13 at 13:16
  • Cheers. The method `EPiServer.DataAbstraction.LanguageBranch.ListEnabled()` did exactly what I was looking for. I'll mark your question but please also update the question – kjetilh Oct 18 '13 at 13:24