Search code examples
c#asp.netumbracoumbraco8

How to get content from specific culture in Umbraco


I have biligngual website with German language set as default language and I am trying to get English content nodes from my SurfaceController like this:

Umbraco.Content(ID);

And i have tried to change curent culture like this:

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");

But without success.


Solution

  • Found the answer:

    private readonly IVariationContextAccessor _variationContextAccessor;
    
    public ContentApiController(IVariationContextAccessor variationContextAccessor)
    {
        _variationContextAccessor = variationContextAccessor;
    }
    
    public IHttpActionResult Get(int id, string culture)
    {
        _variationContextAccessor.VariationContext = new VariationContext(culture);
        var cnt = Umbraco.Content(id);
        return Ok(cnt.Name);
    }