November Happy Hour will be moved to Thursday December 5th.

Sergii Vorushylo
Jan 29, 2012
  5341
(6 votes)

Language files Visual Studio Extension for EPiServer

As you certainly know, EPiServer localization is based on XML files with a certain structure. Working with translations in code is not hard, but I believe it could be even easier with a small extension, that I am going to introduce to you. This is a Visual Studio 2010 extension that has three main functions:

  1. Show values of translation keys as a tool-tips.
  2. Navigate to a line in a language file containing the key.
  3. Copy to the clipboard an expression with path to the key selected in a language file.


In code editor all recognized translation keys are decorated with a thin border.  Tool-tips are shown if you hover a mouse pointer over a decorated translation key. Smart-tags used for navigation can be expanded with left mouse click or by pressing "Ctrl + ." key combination.

The extension can recognize two types of translation references: basic XPath “/admin/settings/heading” and resource binding <%$ Resources: EPiServer, admin.settings.heading %>. Relative paths like Translate(“#heading”) and filtering by attribute value expressions  like Translate(“/pagetypes/property[@name=’Description’]”) are not supported for now.

The extension can be installed from Extension Manager in Visual Studio 2010 (select Online gallery and type “EPiServer” in the search request) or alternatively it can be downloaded from this page.  The source code for the extension is available here.

This project was born during a series of hack-days that we have here in EPiServer development team and it is not an official EPiServer release. You are very welcome to leave feedback and suggestions here in comments or on extensions page. Bugs can be reported and tracked here.

Jan 29, 2012

Comments

valdis
valdis Jan 30, 2012 02:27 PM

cool!

Jan 30, 2012 03:35 PM

Very nice, I have knocked together this macro http://world.episerver.com/Blogs/Lee-Crowe/Dates/2011/6/Language-File-Population-Helper-VS-Macro-v11/ that makes populating the language file much less of a mundane task for large global site builds. It would be useful if you could extend the extension to allow you to select text and easily add it to the language file.

Hampus Persson
Hampus Persson Jan 30, 2012 03:55 PM

Very cool !

Jan 30, 2012 04:31 PM

Very neat!

Jan 30, 2012 04:42 PM

@Croweman I have plans to add something like this in the future

Jan 30, 2012 09:37 PM

Nice! Installed and works like a charm!

Feb 4, 2012 07:39 PM

Cool! Good job, I like!

morgan-henskjold.jensen@capgemini.com

Very nice, will help a lot. Thanks.

Arild Henrichsen
Arild Henrichsen Mar 6, 2012 03:48 PM

This is really a sweet extension!

Thomas Krantz
Thomas Krantz Aug 24, 2012 04:21 PM

Will you also upgrade this extension for Visual Studio 2012?

Aug 27, 2012 10:26 PM

@Thomas Yes, I have started working on the Visual Studio 2012 support.

Sep 2, 2012 10:21 PM

The extension was updated for Visual Studio 2012

Oct 26, 2012 02:17 PM

Like!

AndrewR
AndrewR May 7, 2014 09:36 AM

I have a new request / idea: The language doublesearch.
I quite often need to search like this:
Take some text from a user-provided screenshot, for example "Last ned:"
Search for this text to find the language key "/document/download".
Do a new search to find code that uses the language key.

I would like an extension that allows developers to enter a search text, and then get the language key, and a list of places where the key is used.
Any hopes for an extension upgrade to include this ?

But then maybe I'm the only one doing it this way.

Johan Book
Johan Book May 14, 2015 12:39 AM

Great tool! Need update for VS 2013

Please login to comment.
Latest blogs
AsyncHelper can be considered harmful

.NET developers have been in the transition to move from synchronous APIs to asynchronous API. That was boosted a lot by await/async keyword of C#...

Quan Mai | Dec 4, 2024 | Syndicated blog

The search for dictionary key

Recently I helped to chase down a ghost (and you might be surprised to know that I, for most part, spend hours to be a ghostbuster, it could be fun...

Quan Mai | Dec 4, 2024 | Syndicated blog

Shared optimizely cart between non-optimizley front end site

E-commerce ecosystems often demand a seamless shopping experience where users can shop across multiple sites using a single cart. Sharing a cart...

PuneetGarg | Dec 3, 2024

CMS Core 12.22.0 delisted from Nuget feed

We have decided to delist version 12.22.0 of the CMS Core packages from our Nuget feed, following the discovery of a bug that affects rendering of...

Magnus Rahl | Dec 3, 2024

Force Login to Optimizely DXP Environments using an Authorization Filter

When working with sites deployed to the Optimizely DXP, you may want to restrict access to the site in a particular environment to only authenticat...

Chris Sharp | Dec 2, 2024 | Syndicated blog

Video Guides: Image Generation Features in Optimizely

The AI Assistant for Optimizely now integrates seamlessly with Recraft AI, providing advanced image generation capabilities directly within your...

Luc Gosso (MVP) | Dec 1, 2024 | Syndicated blog